需要SQL幫助。通過SQL查詢獲取基於內部聯接的結果集
表
- 人(ID,姓名)
- 消息(ID,文本)
- PersonMsgResponse(MSGID,PERSONID,delMethod,接收(Y/N)
結構PersonMsgResponse表
- MessageID(MsgId )
- 是PersonID(PerID)
- MessageDeliveredBy(DelMethod)
- 收到的(Y/N)(接收)PersonMsgResponse表內
實施例的行
我需要返回未收到消息的人員名單。
我該如何設計SQL以僅返回那些未通過任何方法接收到消息的成員的成員名稱?
例如,在我上面的查詢記錄列表應僅返回成員自1件2收到電話方式的消息,而會員1未通過任何方法來接收消息。
感謝您的幫助。
這添加了消息ID的技巧。最終查詢如下所示: – Tim
SELECT m.Person ID FROM Person p WHERE m.PersonID IN(SELECT MemberID FROM PersonMsgResponse pmr WHERE pmr.MessageID = 1 AND pmr.Received ='N'AND pmr.PersonID not in(SELECT MemberID FROM PersonMsgResponse pmr WHERE pmrMessageID = 1 AND pmr.Received ='Y')) – Tim