0
我有三個表,並且需要獲取消息,其中用戶PETER不是發件人,也不是收件人。MySql:需要SQL來通過一些規則選擇消息
表 '消息'
idMessage | bodyText | idUserSender
---------------------------------------------
1 | This is message 1 | 2
2 | This is message 2 | 1
3 | This is message 3 | 1
表 '用戶'
idUser | name
-------------------
1 | John
2 | Peter
3 | Marco
表 'messageRecipients'
idMessage | idUserRecipient
----------------------------
1 | 1
1 | 3
2 | 1
2 | 3
3 | 2
3 | 3
所以結果集應該是:
idMessage | bodyText | idUserSender
---------------------------------------------
2 | This is message 2 | 1
我試着用:
SELECT * FROM messages AS M
LEFT JOIN
(
SELECT * FROM users WHERE idUser <> 2
) AS allUsersWithoutPeter ON M.idUserSender = allUsersWithoutPeter.idUser
GROUP BY M.idMessage
,並得到消息彼得不是發件人,但不知道如何除外消息彼得是接受者得並只獲得其中不包括反正彼得消息。