2012-03-29 8 views
0

私は次のSQLでデータベースからデータを取得しようとします。SQL内部結合 - 間違ったIDを取得

select 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 user_ID = " . $getUser->id . " 
    and STAT='onayli' 
ORDER BY mc.ADD_DATE DESC LIMIT " . $commentCount . " 

他のテーブルからムービー名を取得するため、内部結合を使用します。

mc = MOVIE_COMMENT table 
m = MOVIE Table 

私の問題は、mcidを取得しようとすると、なぜ私に映画のIDが与えられるのですか?

+0

'mc.ADD_DATE、mc.MOVIE_ID、mc.COMMENT、m.ID、m.NAME'を選択してください。MC.IDSなどは似ていませんか? – dfb

+0

そこに 'mc.ID'を追加すると' m.ID'が返されないことに注意してください。 '... mc.ID AS movie_comment_ID、m.ID AS movie_ID ...' –

答えて

3

Movie_Comment IDが必要な場合は、mc.IDフィールドを返す必要があります。

SELECT 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 
+0

それは私が欲しいものです! :) – user1277467

0

m.IDmc.IDに置き換えてみましたか?

1

あなたの選択リストにm.IDがあります。おそらくmc.IDが必要です。

+0

私が広告mc.IDを送ったとき、それは私にm.IDを与えるとき: – user1277467

+0

両方を入れてみる同じselect句で 'mc.ID as MCID'と' m.ID as MID'を使用し、結果に違いがあるかどうかを確認してください。 – Kosta

0

idsをMOVIE_COMMENT表からmc.MOVIE_IDとして戻しています。 したがって、(PHPなどの)そこにアクセスしようとすると、MOVIE_IDにアクセスする必要があります。 IDを要求すると、MOVIEテーブルのIDであるm.IDが返されます。

関連する問題