我尝试选择 team id = list of values 的项目; 例如:值列表是 (9,7,6,4,3,1) 我想用具有 team_id = (9,7,6,4,3,1) 的项目创建查询选择;
我的尝试:
select item_id
from t_item as i join
team as t
on t.item_id = i.id
where t.id in (1221, 1219, 1);
但它的工作方式类似于 in (1221 or 1219 or 1)
但我想要 in(1221 and 1219 and 1)
最佳答案
我认为您还需要 group by
和 having
:
select i.item_id
from t_item as i join
team as t
on t.item_id = i.id
where t.id in (1221, 1219, 1)
group by i.item_id
having count(distinct t.id) = 3;
请注意,您不需要join
:
select t.item_id
from team t
where t.id in (1221, 1219, 1)
group by t.item_id
having count(distinct t.id) = 3;
如果 team
中的行是唯一的,请使用 count(*)
而不是 count(distinct)
。
关于SQL 选择 team_id 所在的所有项目(1 和 2 和 3 和 4 以及 .. 列表中的其余值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51652229/