我有一个表 messages
和一个表 deleted_messages
每次触发消息的删除操作而不是删除记录 我在 上创建一个新记录deleted_messages
表。然后我想在 deleted_messages
上检索没有删除消息的消息。
ps:我这里不使用软删除,因为很多用户可以自己删除消息,但不能删除其他用户
我的模式:
用户表
id | name
消息表
id | user_id | message
deleted_messages
id | message_id | user_id
我试图执行以获取用户 1 的所有消息而不删除已删除消息的查询如下,但它返回 0 行:
select *
from messages
left join deleted_messages on deleted_messages.message_id = messages.id
where deleted_messages.user_id != 1
看看SQLFiddle它应该收到 2 条消息,但它返回 null。
最佳答案
在左连接子句中加入were条件
select *
from messages
left join deleted_messages on deleted_messages.message_id = messages.id
and deleted_messages.user_id = 1
where deleted_messages.message_id is null
关于mysql - 选择左连接值不同的行mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23608624/