我有两张桌子
表1:
id|value
1|Tom
1|Lucy
2|Tom
2|Lucy
3|Tom
3|Lucy
3|Bard
表2:
id|value
1|Tom
1|Lucy
2|Tom
2|wrong
3|Tom
3|Lucy
两个表中所有值都匹配的结果应为id:
1
尝试过此:
select distinct a.id
from table1 a
join table2 b on a.id=b.id and a.value=b.value
结果是
1
2
3
INTERSECT
浮现在脑海。或者可能是FULL OUTER JOIN
。 MySQL不支持。
我在MySQL中想到的最简单的方法:
select id
from table1
group by id
having (id, group_concat(value order by value)) in
(
select id, group_concat(value order by value)
from table2
group by id
);
演示:https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=768cc8fb2d01c2b5219a4d56d127d117