我有两张表跟踪列表和歌曲。我从歌曲中获取所有值,其中sid为主要曲目,tracklist为sid为foreign。虽然使用此查询从歌曲中获取所有值是成功的。
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;
答案 0 :(得分:3)
而不是=NULL
,请使用IS NULL
:
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 IS NULL;
答案 1 :(得分:2)
我认为你想使用IS NULL
而不是= NULL
e.g:
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 IS NULL
答案 2 :(得分:0)
SELECT t.sid as tsid, s.sid as ssid, s.name from song s LEFT JOIN tracklist t ON s.sid<>t.sid;
检查s.sid的id是否为null。如果你没有给出id那么它就不会返回它。
<>
表示不相等......
答案 3 :(得分:0)
我认为这应该有效:
SELECT t.sid as tsid, s.sid as ssid, s.name
from song s LEFT OUTER JOIN tracklist t ON s.sid=t.sid where t.sid IS NULL;