0
想象一下,它是一个音乐网站,我有1000首歌曲。用户可以“喜欢”歌曲,它使用memberID和songID存储在查找表中。SQL显示记录首先匹配查找表然后所有其他记录
然后我想要显示所有歌曲列表顶部的特定用户的收藏夹。
SELECT s.*, s.songID theSongID, f.*
FROM su_songs AS s
left JOIN su_member_favourites_lookup AS f
ON f.songID = s.songID
ORDER by f.songID IS NULL, s.songTitle ASC
......工作在顶部显示所有最爱。但我只是想显示已登录用户的收藏夹中,然后将所有其他歌曲的下方
SELECT s.*, s.songID theSongID, f.*
FROM su_songs AS s
left JOIN su_member_favourites_lookup AS f
ON f.songID = s.songID
WHERE memberID = " . $memberID . "
ORDER by f.songID IS NULL, s.songTitle ASC
...如果我添加WHERE子句给用户相匹配,它只显示用户的收藏和遗漏了其他地区这些歌。
http://stackoverflow.com/questions/8388242/left-right-join-not-returning-empty-row – BlitZ
@CORRUPT。答案可能是一样的,但问题是非常不同的。 – Steve