MySql错误的命令

时间:2013-04-05 19:22:52

标签: mysql sql

我在sql中有两个表:

client
id   first
1    david
2    jenna
3    ben

rating
id  clientid userid rating ratetext         date
1   1        3      4      Very good        12/4/2012
2   3        6      3      Simple bla bla   5/3/2013

我希望获得userid的所有评分 所以我尝试了类似的东西:

SELECT rating,ratetext,date,first FROM rating r 
INNER JOIN client c ON r.userid = 3;

但我总是得到其他行的行,我不需要。知道我的命令有什么问题吗?

4 个答案:

答案 0 :(得分:3)

据推测,您希望选择具有明确指定ID的评级以及相应的客户,因为clientid记录中存储了rating

SELECT rating,ratetext,date,first FROM rating r 
INNER JOIN client c ON c.id = r.clientid
WHERE r.userid = 3;

答案 1 :(得分:3)

SELECT rating, ratetext, date, first 
FROM   rating r INNER JOIN client c 
ON     r.clientid = c.id
WHERE  r.userid = 3;

答案 2 :(得分:1)

您的联接应描述两个表连接两个表的信息。你想要的东西:

SELECT * FROM rating r, client c WHERE r.clientid=c.id AND r.userid=3

答案 3 :(得分:1)

我相信这就是你要找的东西:

SELECT r.rating, r.ratetext, r.date, c.first
FROM rating AS r
INNER JOIN client AS c
  ON r.clientid = c.id
WHERE r.userid = 3

您应该加入两个表的客户端ID列,然后在where子句中使用userid进行过滤。

确保您在r.clientid和r.userid上有索引。