我有以下sql查询
SELECT
vmm_user.username,
vmm_songs.*,
vmm_albums.desc,
vmm_albums.release,
vmm_albums.name,
AVG(vmm_songrating.rating) AS ratingavg,
COUNT(vmm_songrating.id) AS ratingcount
FROM
vmm_songs
LEFT JOIN
vmm_user
ON
vmm_songs.userid=vmm_user.id
LEFT JOIN
vmm_albums
ON
vmm_songs.albumid=vmm_albums.id
LEFT JOIN
vmm_songrating
ON
vmm_songs.id=vmm_songrating.songid
GROUP BY
vmm_songs.id
HAVING
COUNT(vmm_songrating.id) >= 2
ORDER BY
AVG(vmm_songrating.rating) DESC
LIMIT
10
这很好但现在我必须知道用户是否已经投票选出了一首歌,这就是我的问题
评级表看起来像这样
ID | songid |用户ID |评价
我试过这样的事情
SELECT
...
COUNT(vmm_songrating.id) as hasvoted
...
OUTER JOIN
vmm_songrating
ON
vmm_songrating.userid = $id
...
$ id是用户会话ID
但它不起作用:/
答案 0 :(得分:0)
你可以尝试在选定的字段中添加这样的内容
SUM(case when vmm_songrating.userid = $id then 1 end) as hasvoted