これには、条件付き集計で集計を使用するのが好きです。たとえば、最初の弾丸の場合:
select a.carid
from attributes a
group by a.carid
having sum( (attribute, value) in ( ('color', 'red'), ('color', 'blue') ) ) > 0 and
sum( (attribute, value) in ( ('wheels', '2') ) > 0;
> 0
属性/値の組み合わせが存在することを意味します。 = 0
を使用します 動作しないことを指定します。