仅当表B中的所有状态相同时才从表A中选择

时间:2017-04-20 20:51:57

标签: tsql

我有个人桌子和第二张桌子,上面有专辑记录和状态。

我需要帮助编写一个视图,只有当该Album表中的两个记录都具有true时才选择它。 (仅选择indivTable中所有albumStatus = 1的个人)

我需要的是更多一点,因为如果一个人有两张专辑,一张状态为true,另一张状态为false。 我想取消那个人被选中的资格,而且我无法弄清楚如何实现这个目标。

感谢所提供的任何帮助。

此致

2 个答案:

答案 0 :(得分:2)

select * from individuals i where (select count(1) from albums a where status != 1 and individualID = i.individualID) = 0

答案 1 :(得分:1)

下面的查询还会检查个人是否至少有一张专辑(他们不算数?)

SELECT DISTINCT i.* 
FROM Individuals AS i
INNER JOIN Albums AS a
    ON i.ArtistID = a.ArtistID 
WHERE NOT EXISTS
(
    SELECT 1 
    FROM Albums AS a2
    WHERE a2.ArtistID = i.ArtistID 
    AND a2.Status = 0
)