2013-10-25 79 views
0

我正在使用Lyric數據庫。我很奇怪,爲什麼這個查詢產生相同的信息:爲什麼這個查詢產生相同的信息?

SELECT M.LastName, A.ArtistName 
FROM members M 
LEFT JOIN XRefArtistsMembers X USING(MemberID) 
JOIN Artists A on X.ArtistID = A.ArtistID; 

而且

SELECT M.LastName, A.ArtistName 
FROM members M 
INNER JOIN XRefArtistsMembers X USING(MemberID) 
JOIN Artists A on X.ArtistID = A.ArtistID; 

有沒有錯誤。我可以通過請求發佈相關記錄。

+0

第一查詢使用LEFT JOIN使用INNER JOIN第二。我可以問一下兩者的區別嗎? – cryptomath

+4

也許它們產生相同的結果,因爲'XRefArtistsMembers'中沒有與左表('members')不匹配的記錄。 – akonsu

回答

0

INNER JOIN只只選擇那些條目從所述兩個聯接的表,其中,來自於兩個表中的JOIN子句匹配字段中的值。

LEFT JOIN選擇從第一個表中的所有條目,與無論是從第二表或代替NULL值匹配的條目結合起來,如果沒有匹配。

如果第一個表中的每一行在JOIN子句中提到的第二個表中有匹配,那麼INNER JOIN和LEFT JOIN都會產生相同的結果。

相關問題