0

最初に完全な列リストで 2 つのテーブル間で完全な外部結合を実行できるかどうかを知りたいです。これが失敗した場合は、部分的な列リストです。例えば:

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 を使用しています。ご協力ありがとうございます。

4

1 に答える 1

1

このクエリは、目的の結果を正確に生成します。

SELECT *
FROM   A
FULL   JOIN B USING (a,b,c)
ORDER  BY a DESC NULLS LAST;

しかし、私はあなたの例があなたの説明に合っていると完全に確信しているわけではありません-解釈の余地があります.

于 2012-06-22T04:53:42.283 に答える