2016-05-31 83 views
0

我有一個item_id和其他一些字段的表。從mysql中的另一個表中獲取數據

item_id,name,address,postcode 

我也有消息表,涉及到的ITEM_ID

item_id,user_id,message 

我所試圖做的就是,在一個特定郵政編碼選擇所有行的查詢(根本不是問題,)

而且還返回(例如0或1)的東西,如果是登錄也是用戶已經與該項目有關的消息

所以我有這樣一個基本的查詢:

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

,但我想以某種方式合併消息表讓我留下一個標誌,表明USER_ID有或沒有派與商品相關的

我怎樣才能做到這一點的消息?

我嘗試了一個左連接,但那隻會顯示用戶有消息的結果,而我想要的結果無論用戶是否實際發送了一條消息,我只想知道他們是否做過。

+0

旁註:爲什麼你使用'IN()'作爲一個值? –

+0

,因爲實際查詢可能包含郵政編碼的多個值 –

+0

好的,那部分我不知道;-) –

回答

1

使用的IF條件檢查messageIF(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') 

希望這會有所幫助。

+0

雖然這不完全是解決方案,但它讓我走下正確的軌道去解決它 –

相關問題