2009-06-03 12 views
0

投稿者のUserIDに対応するusers.imageのデータを含めるには、既存のJOINクエリを変更する必要があります。以下のような何か:PHPでmysql JOINクエリを展開する

users.image WHERE users.UserID = posts.userid

私はまだ参加したクエリと非常によくないです。どうすればいい?

既存のクエリ:

$result = mysql_query("SELECT posts.* FROM listen JOIN posts ON posts.userid = listen.listenid WHERE listen.userid = '$user_id' ORDER BY DATE desc") or die(mysql_error()); 
+0

SELECT投稿など、あなたのフィールドで選択されている追加の項目を追加したいと思う*、users.image FROM ON(posts.userid = listen.listenid投稿をJOINを聞きます。 )ユーザーに参加する(users.UserID = posts.userid)WHERE listen.userid = '$ user_id' ORDER BY DATE desc」) – ian

答えて

2

はちょうど別の追加JOIN句:

SELECT posts.* 
FROM listen 
JOIN posts ON (posts.userid = listen.listenid) 
JOIN users ON (users.UserID = posts.userid) 
WHERE listen.userid = '$user_id' 
ORDER BY DATE desc 

あなたは後にしているものに応じて、JOINなどLEFTとして参加し、特定のJOINを変更する必要があります。

Btwを使用すると、複数の行でクエリを表示する方が簡単です。

編集:あなたは、おそらくこのようSELECT posts.*, users.*

+0

それはエラーではありませんが、私が得ようとしている値を返さないことを意味します。 – ian

+0

クエリは、適切な項目をすべて選択しますが、追加しようとしている画像の行は表示されません。一致するusers.image行を選択して結果に追加する必要がありますか? – ian

+0

現在、 。*しかし、 'listen'や' users'のフィールドはありません。SELECT user.image、posts。* FROM ... – VolkerK

関連する問題