我有一个表(t1),其中有多行状态用于不同的引用,一列是ReferenceID,另一列是StatusID。
t1.ReferenceID - t1.StatusID
A1 - 1
A1 - 2
A1 - 3
A1 - 4
A2 - 1
A2 - 3
A3 - 1
A3 - 3
A4 - 1
A4 - 4
A5 - 2
A5 - 3
我有第二个表(t2),它是所有可用StatusID的列表
t2.StatusID
1
2
3
4个
我需要能够从存在StatusID'1'的t1中提取ReferenceID列表,但是它缺少表2中的一个或多个其他StatusID。
即。使用上面的内容,将返回以下referenceID:
A2
A3
A4
答案 0 :(得分:0)
不要知道这是否适用于SQLAnywhere
。
SELECT DISTINCT r.ReferenceID
FROM (SELECT ReferenceID FROM TableName WHERE StatusID = 1 GROUP BY ReferenceID) r
CROSS JOIN (SELECT StatusID FROM TableName GROUP BY StatusID) d
LEFT JOIN TableName a
ON d.StatusID = a.StatusID AND
r.ReferenceID = a.ReferenceID
WHERE a.StatusID IS NULL
ORDER BY r.ReferenceID