gpt4 book ai didi

mysql 将选择结果与一组值进行比较

转载 作者:行者123 更新时间:2023-11-29 16:10:56 26 4
gpt4 key购买 nike

我有两张 table ,其中一个包含 person_id 和 person_name 的名称第二个表包含自动递增relative_id、person_id 和relative_name

person_id------person_name
--------------------------
--------------------------

relative_id-----person_id------relative_name
--------------------------------------------
--------------------------------------------
--------------------------------------------

我有一组名字(亚当、卡尔、戴夫......)

我怎样才能获得所有亲戚的名字都在该集合中的人的名字(他们的亲戚是名字集合的子集)

enter image description here

最佳答案

进行连接和聚合:

select p.person_name
from person p inner join
person_relative pr
on pr.person_id = p.person_id
where pr.relative_name in ('adam', 'carl', 'dave')
group by p.person_name
having count(*) = 3;

如果单例有重复的亲属,则在 count() 中使用 distinct :

having count(distinct pr.relative_name) = 3;

编辑:问题编辑后

select p.person_name
from person p inner join
person_relative pr
on pr.person_id = p.person_id
group by p.person_name
having sum( pr.relative_name not in ('adam', 'carl', 'dave') ) = 0;

关于mysql 将选择结果与一组值进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55267786/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com