从表中选择具有相同外键的所有其他记录具有特定值的记录

dna*_*oli 2 sql t-sql

我有一张下表

ItemStatus
----------
id
item_id
status
Run Code Online (Sandbox Code Playgroud)

我想选择所有item_ids,其中表中item_id的每条记录的状态为A.

例如,如果记录是这样的:

id    item_id    status
-----------------------
1        1          A
2        1          B
3        2          A
4        2          A
5        3          B
Run Code Online (Sandbox Code Playgroud)

然后我唯一会回来的item_id是2.

JBr*_*oks 6

    select item_id
    from YourTable
    group by item_id
    having sum(case when status='A' then 1 else 0 end) = count(1)
Run Code Online (Sandbox Code Playgroud)