7

結合されて選択された2つのテーブルがあります。

表1

PK    Val1    Val2     FK
1     a       b        10
2     c       d        11
3     e       f
4     g       h        12

表2

PK    Val3
10     X
11     Y
12     Z

内部結合とすべてのVal-Columnsを使用してこの両方のテーブルを選択すると、次の結果が得られます。

Result
PK    Val1    Val2     Val3
1     a       b        X
2     c       d        Y
4     g       h        Z

ご覧のとおり、3番目のエントリがありません。私が欲しいのはこのようなものです:

Result
PK    Val1    Val2     Val3
1     a       b        X
2     c       d        Y
3     e       f
4     g       h        Z

joinqueryを変更するにはどうすればよいですか

SELECT ... FROM Table1 INNER JOIN Table2 On Table1.FK = Table2.PK

ありがとう、カール

4

3 に答える 3

13

LEFT JOINの代わりに使用INNER JOIN

SELECT ... FROM Table1 LEFT JOIN Table2 On Table1.FK = Table2.PK

基本的にINNER JOIN、他のテーブルで少なくとも一致するレコードを返します。Whileは、一致するかどうかに関係なく、左側LEFT JOINで指定されたテーブルのすべてのレコードを返します。

ところで、LEFT OUTER JOINと同じですLEFT JOIN

SQLFiddleデモ

于 2012-10-19T07:06:12.667 に答える
2

左外部結合を使用する

SELECT ... FROM Table1 LEFT OUTER JOIN Table2 On Table1.FK = Table2.PK
于 2012-10-19T07:07:37.360 に答える
-1
SELECT ... FROM Table1 CROSS JOIN Table2
于 2012-10-19T07:29:01.253 に答える