我在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;
但我总是得到其他行的行,我不需要。知道我的命令有什么问题吗?
答案 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上有索引。