2016-05-31 21 views
0

item_idと他のいくつかのフィールドを持つテーブルがあります。私も、私がやろうとしています何のitem_idmysqlの別のテーブルからデータを取得する

item_id,user_id,message 

に関連したメッ​​セージのテーブルを持っている

item_id,name,address,postcode 

は、特定の郵便番号(ないそこの問題)内のすべての行を選択する問合せをするです

も(例えば0または1)何かもログインしているユーザーは、メッセージが私はこのような基本的なクエリを持って

ので、アイテムに関連付けられている場合を返す:

select item_id,name,address,postcode from items where postcode in ('3000') 

が、私は私がUSER_IDが持っているかのアイテム私はこれを行うことができますどのように

に関連したメッ​​セージを送信していないことを示すためにフラグが残っていますように、何らかの形でメッセージテーブルを組み込みたいですか?

私は左の結合を試みましたが、ユーザーが実際にメッセージを送信したかどうかにかかわらず、結果が表示されるのに対し、ユーザーがメッセージを受け取った場合のみ結果が表示されます。

+0

サイドノート:なぜ1つの値に 'IN()'を使用していますか? –

+0

実際のクエリには郵便番号 –

+0

の複数の値が含まれている可能性があるため、その部分はわかりませんでした;-) –

答えて

1

は、これが役立つことを願っています IF(message.message <>'', 1, 0) as flag

SELECT 
    items.item_id,name,address,postcode, 
    IF(message.message <>'', 1, 0) as flag, message 
FROM items 
LEFT JOIN message ON items.item_id = message.item_id 
WHERE postcode in ('3000') 

messageフィールドをチェックするためにIF条件を使用してください。

+0

これは正確な解決策ではありませんが、 –

関連する問題