2016-05-31 78 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

虽然这不完全是解决方案,但它让我走下正确的轨道去解决它 –

相关问题