从mysql

时间:2016-05-31 02:18:10

标签: php mysql

我有一个包含item_id和其他一些字段的表。

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已经或者没有发送过与该项相关的消息

我该怎么做?

我尝试了左连接,但这只会显示用户有消息的结果,而我想要的结果无论用户是否实际发送了消息,我只想知道他们是否这样做。

1 个答案:

答案 0 :(得分:1)

使用IF条件检查message字段 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')

希望这会有所帮助。