[英]sql Better way than intersection of inner-join
我們有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”以匹配列表的大小。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.