我们有2列的表格:ObjectName和ObjectColor。这是一个多对多表。我们有一组给定的颜色{x,y,z,...}

我们要选择存在所有给定颜色的ObjectName列表。

如果我们有N种颜色,我可以想象在同一张表上有N-1个交集的sql查询。或者我们也可以想象该表上有N-1个自联接。

有更好的解决方案吗?
MySQL是否有特定的解决方案?

认为

最佳答案

这是一种方法:

select objectname
from t
where objectcolor in (x, y, z)
group by objectname
having count(*) = 3;


您需要调整“ 3”以匹配列表的大小。

10-04 10:35