この違いは何:このWHERE句とこのJoinの違いは何ですか?
SELECT * FROM table1, table2 WHERE table1.primary_id = table2.primary_id
そして、この:
SELECT * FROM table1 FULL JOIN table2 ON table1.primary_id = table2.primary_id
この違いは何:このWHERE句とこのJoinの違いは何ですか?
SELECT * FROM table1, table2 WHERE table1.primary_id = table2.primary_id
そして、この:
SELECT * FROM table1 FULL JOIN table2 ON table1.primary_id = table2.primary_id
は、最初のクエリが暗黙のINNER JOIN
で、あなたは常に明示的な構文を使用する必要があります。その場合、クエリはtable1とtable2にあるレコードを返します。 2番目のクエリは両方のテーブルのすべてのレコードを返し、一致するものがない場合はNULL
を示します。
FULL JOIN
キーワードは、table1
のすべての行と、table2
のすべての行を返します。 table1
に一致がない行がtable2
にある場合、または一致するものがtable1
にない行がtable2
にある場合は、これらの行も同様に表示され、nulls
で埋められます。
最初のクエリでは、結果が返されます。table1
は、table2
(primaryId
)に一致します。これはINNER JOIN
と同等です。
+1私が入力していたものとほぼ同じものを私のすぐ前に置いている。 –
右、私は本当に疲れていなければなりませんあなたはFULL JOINが私にそれらの余分なヌル結果を与えるでしょうが、あなたは暗黙のINNER JOINだと言いましたので、私の例では2番目のクエリでINNER JOIN同じですがおすすめしていませんか? – user519753
'INNER JOIN'を使うには同じで**推奨**する必要があります。 –