0

私は次の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|userid|評価

私はこのようなことを試しました

SELECT 
...
 COUNT(vmm_songrating.id) as hasvoted  
...
OUTER JOIN 
    vmm_songrating
ON 
    vmm_songrating.userid = $id
...

$id はユーザー セッション ID です

しかし、それは機能しません:/

4

1 に答える 1