MySQL JOIN无法正常工作

时间:2014-08-01 18:50:23

标签: mysql phpmyadmin inner-join

我知道这已被问到很多 - 但它并不是我能找到的任何东西的副本。
我试图让每个用户获得每首歌的评分。

这是我的桌子:

enter image description here

ratings.uidusers.USERID具有foreign_key关系 ratings.sidsongs.ID

有foreign_key关系

我希望能够查询类似: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"

任何人都可以帮忙吗?

2 个答案:

答案 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