我有两个表的曲目列表和歌曲。我从sid获取所有sid值作为主参数,并将sid作为外部参数。尽管使用此查询从歌曲中提取所有值是成功的。问题与连接查询
SELECT t.sid as tsid, s.sid as ssid, s.name from song s LEFT JOIN tracklist t ON s.sid=t.sid;
但是,如果我希望从歌曲中获取那些不在曲目列表中的值,则此查询不会获取单行。
SELECT t.sid as tsid, s.sid as ssid, s.name from song s LEFT JOIN tracklist t ON s.sid=t.sid where t.sid= NULL;
您是否尝试过使用'JOIN'或'INNER JOIN',而不是一个'LEFT JOIN'? – JMichelB
我不知道为什么你的第二个查询失败(对我来说看起来没问题),但我会为第一个查询使用内部连接。 –
@JMichel否使用左连接来查找不在表中的行是合法的。甚至mysql文档[提及它](http://dev.mysql.com/doc/refman/5.0/en/left-join-optimization.html):“如果您使用LEFT JOIN查找不存在的行某些表...“ –