我有一个包含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已经或者没有发送过与该项相关的消息
我该怎么做?
我尝试了左连接,但这只会显示用户有消息的结果,而我想要的结果无论用户是否实际发送了消息,我只想知道他们是否这样做。
答案 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')
希望这会有所帮助。