我想知道我是否可以首先在完整列列表中的两个表之间执行完全外部联接,如果失败,则是部分列列表。 例如:
Table A
| a | b | c |
+-----+-----+-----+
| x | y | z |
| q | r | s |
Table B
| a | b | c | d | e |
+-----+-----+-----+-----+-----+
| q | r | s | t | u |
| q | r | | x | y |
| | | | x | y |
Failed query:
SELECT *
FROM A FULL OUTER JOIN B
ON
(A.a = B.a AND A.b = B.b AND A.c = B.c)
OR (A.a = B.a AND A.b = B.b)
Desired result
| a | b | c | d | e |
+-----+-----+-----+-----+-----+
| x | y | z | | |
| q | r | s | t | u |
| q | r | | x | y |
| | | | x | y |
我正在使用Postgresql。谢谢你的帮助。
答案 0 :(得分:1)
此查询将完全产生所需的结果:
SELECT *
FROM A
FULL JOIN B USING (a,b,c)
ORDER BY a DESC NULLS LAST;
但我并不完全相信你的例子适合你的描述 - 这为解释留下了空间。