3 つのテーブルがあり、ユーザー PETER が送信者ではなく、受信者でもないメッセージを取得する必要があります。
テーブル「メッセージ」
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
テーブル「メッセージ受信者」
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
ピーターが送信者ではないメッセージを取得しましたが、ピーターが受信者でもあるメッセージを除外する方法がわかりません。とにかくピーターが含まれていないメッセージのみを取得します。