sql比内连接的交集方式更好

时间:2016-05-24 11:59:42

标签: mysql sql intersection self-join

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

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

如果我们有N种颜色,我可以想象在同一个表上使用N-1交叉的sql查询。或者我们也可以想象N-1自我加入该表。

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

认为

1 个答案:

答案 0 :(得分:3)

这是一种方法:

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

您需要调整" 3"匹配列表的大小。