2013-10-25 36 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都会产生相同的结果。

相关问题