※ 引述《JYHuang (夏天到了,冷不起来了说)》之铭言:
: 抱歉不知道标题要如何下,DB是MYSQL。
: 假设有个table是商品,另一个是属性的关联表
: table:goods table:prop
: goods_id name prop_id name
: 1 商品A 1 USB3.0
: 2 商品B 2 HDMI
: 3 商品C
: table:goods_prop
: goods_id prop_id
: 1 1
: 1 2
: 2 1
: 3 1
: 3 2
: 我想要透过同时具有USB3跟HDMI的条件来饰选
: 或是选商品A时,列出属性"完全一样"的商品
: 我用的方法是
: SELECT `goods_id`
: FROM `goods_pro`
: WHERE `prop_id` IN (1,2)
: HAVING count(`goods_id`) >= 2
: 不过这样要用程式分开来取条件,不知是否还有其它的关联法呢?
select name
from goods
where goods_id in (select goods_id
from goods_prop
where prop_id in (1,2)
group by goods_id
having count(distinct prop_id)>=2)
不知道这样行吗?(其实看不太懂原PO想要的是什么)