我有使用這些列存儲的消息的消息傳送系統:SQL檢查是否A和B IN(...)
- 消息,這是實際的消息
- to_id,用戶的編號「會收到消息
- from_id,發送消息
我想查詢像這樣的對話的用戶的ID:
SELECT sender.username, message
FROM messages
JOIN users sender ON sender.id=messages.from_id
JOIN users receiver ON receiver.id=messages.to_id
WHERE (sender.username LIKE 'user1' AND receiver.username LIKE 'user2')
OR (receiver.username LIKE 'user1' AND sender.username LIKE 'user2')
其工作原理,但我想通過USER1和user2的只有一次,類似
WHERE (from_id, to_id) IN ((SELECT id FROM users WHERE username LIKE 'user1'),
(SELECT id FROM users WHERE username LIKE 'user2'))
不mysql中工作。有什麼建議麼?
除非您實際上不需要'LIKE',而是可以使用'=',否則我認爲您的原始方法可能是最好的方法。 – Ryan