为什么此查询会生成相同的信息?

时间:2013-10-25 01:08:51

标签: sql

我正在使用歌词数据库。我想知道为什么这个查询产生相同的信息:

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;

没有错误。我可以按要求从表中发布相关记录。

1 个答案:

答案 0 :(得分:0)

INNER JOIN只选择两个连接表中的那些条目,其中JOIN子句中字段的值在两个表中都匹配。

LEFT JOIN选择第一个表中的所有条目,结合第二个表中的匹配条目或者如果没有匹配则使用NULL值。

如果第一个表中的每一行在JOIN子句中提到的字段的第二个表中都匹配,则INNER JOIN和LEFT JOIN都将产生相同的结果。