gpt4 book ai didi

mysql - 如何使用 SQL/mySQL 查询从表中查找相似项?

转载 作者:行者123 更新时间:2023-11-29 09:27:43 25 4
gpt4 key购买 nike

我有 2 个表格,如图所示。

Tables

我使用以下方法创建了表格:

CREATE TABLE Table1(id varchar(50), country varchar(50));
insert into Table1(id, country) values("AA", "Belgium");
insert into Table1(id, country) values("AA", "Hungary");
insert into Table1(id, country) values("BB", "Germany");
insert into Table1(id, country) values("BB", "Canada");
insert into Table1(id, country) values("CC", "USA");
insert into Table1(id, country) values("DD", "Norway");
insert into Table1(id, country) values("DD", "Finland");
insert into Table1(id, country) values("DD", "France");

CREATE TABLE Table2(grpid varchar(50), country varchar(50));
insert into Table2(grpid, country) values("WWW", "Belgium");
insert into Table2(grpid, country) values("WWW", "Hungary");
insert into Table2(grpid, country) values("WWW", "Japan");
insert into Table2(grpid, country) values("YYY", "USA");
insert into Table2(grpid, country) values("ZZZ", "Norway");
insert into Table2(grpid, country) values("ZZZ", "Finland");
insert into Table2(grpid, country) values("ZZZ", "France");
insert into Table2(grpid, country) values("ZZZ", "Russia");

我需要提取这种格式的数据:

AA - WWW

CC - YYY

DD - ZZZ

逻辑是:

  1. 在表 1 中,AA 包括比利时和匈牙利。在表2中,WWW还至少有比利时和匈牙利作为共同项。
  2. 在表 1 中,CC 代表美国。在表2中,YYY至少还有USA作为共同项。
  3. 在表 1 中,DD 包括挪威、芬兰、法国。表2中,ZZZ至少还有挪威、芬兰、法国。

您能否帮助我了解需要使用哪些查询/逻辑来提取上述格式的数据。这将是一个很大的帮助。谢谢:)

最佳答案

我认为这是一个加入和一些聚合:

select t1.id, t2.grpid
from table1 t1 left join
table2 t2
on t1.country = t2.country
group by t1.id, t2.grpid
having count(*) = count(t2.country); -- all in t1 match in t2

关于mysql - 如何使用 SQL/mySQL 查询从表中查找相似项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59294833/

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