2012-03-30 86 views
1

我檢索與內DATAS兩個tables.This加入是sql:三表內加入

SELECT mc.user_id, mc.id AS movie_comment_id, mc.add_date, 
     mc.movie_id, mc.comment, m.id, m.name 
FROM  movie_comment AS mc 
     INNER JOIN movie AS m ON m.id = mc.movie_id 
WHERE movie_id = 1500 
AND  stat = 'onayli' 
ORDER BY mc.add_date DESC 
LIMIT 10 

什麼,我想要的是retriving也是從用戶table.I寫這個SQL使用者名稱,但不工作

SELECT u.id, u.username, mc.user_id, mc.id AS movie_comment_id, mc.add_date, 
      mc.movie_id, mc.comment, m.id, m.name 
FROM  movie_comment AS mc 
      INNER JOIN movie AS m ON m.id = mc.movie_id 
           ON mc.user_id = u.id 
WHERE  movie_id = 1500 
AND  stat = 'onayli' 
ORDER BY mc.add_date DESC 
LIMIT 10 

我該如何檢索用戶名?

+0

「不工作」 是不是一個錯誤的描述。有什麼問題? – 2012-03-30 09:23:19

+0

你只是缺少一個INNER JOIN語句以供使用 – Pranav 2012-03-30 09:25:44

回答

3

您需要在每個內部聯接的開始處指定INNER JOIN

select u.ID ,u.USERNAME,mc.USER_ID,mc.ID as Movie_Comment_ID,mc.ADD_DATE,mc.MOVIE_ID,mc.COMMENT,m.ID,m.NAME 
from MOVIE_COMMENT as mc 
INNER Join MOVIE as m ON m.ID=mc.MOVIE_ID 
INNER JOIN [USER] u ON mc.USER_ID = u.ID 
WHERE MOVIE_ID = 1500 and STAT='onayli' ORDER BY mc.ADD_DATE DESC LIMIT 10 
+0

使用更清晰的格式,你可以看到Curt在​​一分鐘內報告的錯誤。 – 2012-03-30 09:30:28

1
select u.ID ,u.USERNAME,mc.USER_ID,mc.ID as Movie_Comment_ID,mc.ADD_DATE,mc.MOVIE_ID,mc.COMMENT,m.ID,m.NAME 
from MOVIE_COMMENT as mc 
INNER Join MOVIE as m ON m.ID=mc.MOVIE_ID 
INNER JOIN usertable as u ON mc.USER_ID = u.ID 
WHERE MOVIE_ID = 1500 and STAT='onayli' ORDER BY mc.ADD_DATE DESC LIMIT 10 
0
SELECT u.ID, 
u.USERNAME, 
mc.USER_ID, 
mc.ID as Movie_Comment_ID, 
mc.ADD_DATE, 
mc.MOVIE_ID, 
mc.COMMENT, 
m.ID, 
m.NAME 
FROM MOVIE_COMMENT as mc 
INNER JOIN MOVIE as m ON m.ID = mc.MOVIE_ID 
INNER JOIN [User] u ON u.ID = mc.USER_ID 
WHERE MOVIE_ID = 1500 and STAT='onayli' ORDER BY mc.ADD_DATE DESC LIMIT 10