2013-04-05 37 views
1

我有兩個表中的SQL:MySql的錯誤指令

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

我不清楚這裏的用戶和客戶端有什麼不同。 – 2013-04-05 19:25:48

回答

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

大概要選擇具有明確指定ID評級,因爲存儲在rating記錄clientid相應的客戶端:

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

你的加入應說明兩個信息連接兩張桌子。你想沿着線的東西:

SELECT * FROM rating r, client c WHERE r.clientid=c.id AND r.userid=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列,然後在使用用戶ID子句來過濾。

確保你在r.clientid和r.userid上有索引。