0

次のようなクエリがあります。

SELECT tm.first_name, tm.last_name, tm.id, i.thumb 
FROM team_members tm, images i, tm_image tmi 
WHERE tm.id = tmi.tm_id AND tmi.image_id = i.id

うまく機能します。名前などと、次のようなテーブルで個人にリンクされた画像が返されます。

individual_id -> individual_id - image_id <- image_id

問題は、個人に画像が添付されていない場合、クエリは何も返さないことです。私が望むのは、画像データがない場合にクエリが NULL を返すことです。if ステートメントを使用しますか?

ありがとう!

4

2 に答える 2

2

問題を解決するには、LEFT JOINを実行する必要があります

SELECT tm.first_name, tm.last_name, tm.id, i.thumb 
FROM team_members tm
LEFT JOIN tm_image tmi ON (tmi.image_id = i.id)
LEFT JOIN images i ON (tm.id = tmi.tm_id);

未テスト、エラーが含まれている可能性があります。

上記のクエリでは、メンバーが画像を持っていない場合、値tm.idi.thumb両方がNULL

ここでいくつかの例を見つけることができます: http://phpweby.com/tutorials/mysql/32

于 2012-05-10T12:17:05.647 に答える
2

を使用しLEFT JOINます。このような:

SELECT 
   tm.first_name, 
   tm.last_name, 
   tm.id, 
   i.thumb 
FROM 
 team_members tm
 LEFT JOIN tm_image tmi 
   ON tm.id = tmi.tm_id
 LEFT JOIN images i
   ON tmi.image_id = i.id
于 2012-05-10T12:17:35.853 に答える