MySQL 使用连接排除 ID
MySQL exclude ids using joins
我有 2 个表:
uid uname
1 alex
2 anna
3 sergey
4 arnold
5 john
mid message uid
1 hello 3
2 DELETED 3
3 xcvcxv 4
4 bye 1
5 DELETED 2
6 4452 5
我想获取所有消息,但如果消息包含 "DELETED",请从所有消息中排除此消息的用户 ID(此消息后不要 return 来自用户 ID 3 和 2 的消息),使用 JOIN 而没有 NOT IN。
感谢您的帮助。
这应该 select 没有已删除消息的用户的所有消息:
SELECT m.*
FROM message m
LEFT JOIN message m2
ON m2.uid = m.uid
AND m2.message = 'DELETED'
WHERE m2.mid IS NULL;
我有 2 个表:
uid uname
1 alex
2 anna
3 sergey
4 arnold
5 john
mid message uid
1 hello 3
2 DELETED 3
3 xcvcxv 4
4 bye 1
5 DELETED 2
6 4452 5
我想获取所有消息,但如果消息包含 "DELETED",请从所有消息中排除此消息的用户 ID(此消息后不要 return 来自用户 ID 3 和 2 的消息),使用 JOIN 而没有 NOT IN。 感谢您的帮助。
这应该 select 没有已删除消息的用户的所有消息:
SELECT m.*
FROM message m
LEFT JOIN message m2
ON m2.uid = m.uid
AND m2.message = 'DELETED'
WHERE m2.mid IS NULL;