-2

我有一个表(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.状态ID

1
2
3
4

我需要能够从存在 StatusID '1' 的 t1 中提取 ReferenceID 列表,但是它缺少表 2 中的一个或多个其他 StatusID。

即使用上面的以下referenceID将被返回:

A2
A3
A4

4

1 回答 1

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
于 2013-06-03T01:35:41.020 回答