2012-05-10 13 views
0

追加私はこのようなクエリがある場合:MySQLの真のSELECTとWHERE

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文を使用しますか?

ありがとうございます!あなたはLEFTを行う必要があり

+0

好奇心の渦中に、どこでクエリがそのように書かれているのがわかりましたか? –

+0

私はそれを書きました、なぜですか? – nick

+0

私はあなたがそれを書いたと確信しています:)しかし、あなたはどこかでThetaスタイルを使って質問を書く方法を読まなければなりませんでした。それはひどく時代遅れで、人々はそれをまれに使用することはほとんどありません。内部結合は、デフォルトではthetaスタイルを使用して暗示されるため、これもあなたの問題の原因です。興味深いことに、その情報に感謝します。 –

答えて

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 
2

は、

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); 

未テストあなたの問題を解決するために、エラーが含まれていてもよい、JOIN。上記のクエリで

メンバーがイメージを持っていない場合tm.idi.thumbの値が両方NULL

になりますあなたはここにいくつかの例を見つけることができます。http://phpweby.com/tutorials/mysql/32