我知道这已被问到很多 - 但它并不是我能找到的任何东西的副本。
我试图让每个用户获得每首歌的评分。
这是我的桌子:
ratings.uid
与users.USERID
具有foreign_key关系
ratings.sid
与songs.ID
我希望能够查询类似:WHERE users.USERID = 3
)的内容:
----------------------------------
USERID | SONGTITLE | RATING
----------------------------------
3 | Song #1 | 1
----------------------------------
3 | Song #2 | 3
----------------------------------
3 | Song #3 | 4
----------------------------------
3 | Song #4 | 5
这是我能得到的最接近......而且错了:
SELECT users.USERID, songs.SONGTITLE, ratings.rating
FROM users,songs
INNER JOIN ratings
ON users.USERID = ratings.uid
WHERE users.USERID = 3
我收到错误:unknown column "users.USERID" in "on clause"
任何人都可以帮忙吗?
答案 0 :(得分:1)
我认为您想要的是以下内容:
SELECT users.USERID, songs.SONGTITLE, ratings.rating
FROM users
INNER JOIN ratings ON users.USERID = ratings.uid
INNER JOIN songs ON songs.ID = ratings.sid
WHERE users.USERID = 3
答案 1 :(得分:1)
我会尝试使用仅使用Joins
的查询,我不相信您可以将笛卡尔积与混合匹配。
Select u.USERID, s.SONGTITLE, r.rating
From users u Join
ratings r On u.USERID = r.uid Join
songs s On r.sid = s.ID
Where u.USERID = 3