-1

我有两张桌子

一个是 Claims 表,另一个包含 Edits

我通过 ClaimID 加入

我只想要具有 205 编辑而不是 913 的 ClaimID。我需要为加入做什么?

所以可以说 Edits 是 e 并且我检查 e.RuleID 可以有 205,但不能有 913(每个 claimid 可以有无限的编辑)

4

3 回答 3

1
SELECT * FROM Claims AS c
WHERE EXISTS (
    SELECT * FROM Edits AS e1
    WHERE c.ClaimID = e1.ClaimID 
    AND e1.RuleId=205)
AND NOT EXISTS (
    SELECT * FROM Edits AS e2
    WHERE c.ClaimID = e2.ClaimID
    AND e2.RuleId=913)
于 2013-04-03T18:27:16.087 回答
0
SELECT Edit205.ClaimID
FROM Edits Edit205
LEFT JOIN Edits Edit913
ON Edit205.ClaimID = Edit913.ClaimID AND Edit913.RuleID = 913
WHERE Edit205.RuleID = 205
AND Edit913.ClaimID IS NULL

在这里工作 sqlfiddle

于 2013-04-03T18:23:35.183 回答
0

这将做:

SELECT *
FROM Claims C
WHERE NOT EXISTS(SELECT 1 
                 FROM Edits 
                 WHERE Edit = 913 AND ClaimId = C.ClaimId)
AND EXISTS (SELECT 1 
            FROM Edits 
            WHERE Edit = 205 AND ClaimId = C.ClaimId)
于 2013-04-03T18:26:41.553 回答