1

我有以下表格:

表格1:

A   B   C
1   2   3
2   4   6
3   6   9

表 2:

A   B   C
4   8   12
5   10  15
6   12  18

表3:

A   D
2   X   
4   Y
6   Z

我需要一个查询,它给出:

A   B   C   D
1   2   3
2   4   6   X
3   6   9
4   8   12  Y
5   10  15  
6   12  18  Z

那可能吗?

我可以在 2 个查询中做到这一点,但我正在做的人想要它在 1 中。

谢谢!

4

2 回答 2

3

试试这个(关于sqlfiddle的例子):

SELECT x.a, x.b, x.c, d
FROM (
  SELECT a, b, c FROM table1
  UNION ALL
  SELECT a, b, c FROM table2
) x
LEFT JOIN table3 ON ( table3.a = x.a )
于 2013-04-26T10:01:58.833 回答
2

当然:

select v1.*, table3.d 
from 
  (select table1.a, table1.b, table1.c 
   from table1
   union all
   select table2.a, table2.b, table2.c 
   from table2 
  ) v1
left join table3 on v1.a = table3.a
于 2013-04-26T10:04:16.500 回答