面接で受けた質問です。次の 3 つのシナリオの違いを説明するように依頼されました。
クエリ #1:
SELECT p.name, c.email
FROM PersonalDetails as p
JOIN ContactDetails c
ON p.id = c.id
WHERE p.region = 'UK'
クエリ #2
SELECT p.name, c.email
FROM PersonalDetails as p
LEFT JOIN ContactDetails c
ON p.id = c.id
WHERE p.region = 'UK'
クエリ #3:
SELECT p.name, c.email
FROM PersonalDetails as p
LEFT JOIN ContactDetails c
ON p.id = c.id AND p.region = 'USA'
私の答え-1番目は内部結合で、2番目はLEFT JOINです。したがって、最初のクエリは両方のテーブルから一致するレコードのみを返し、2番目のクエリは両方のテーブルから一致するレコードと左のテーブルからすべてのレコードを返します。
彼らの答え - 最初の 2 つのクエリは同じ結果を返します。3番目のクエリは内部結合として実行されます
誰がこれがどのように起こるか説明できますか...???
前もって感謝します