試試看這個
SELECT GOODS_ID
FROM (
SELECT GOODS_ID,GROUP_CONCAT(PROP_ID) AS PROP_ID
FROM GOODS_IDS_PROP_ID
GROUP BY GOODS_ID ) AS A
WHERE PROP_ID IN (
SELECT GROUP_CONCAT(PROP_ID)
FROM GOODS_IDS_PROP_ID
WHERE GOODS_ID = 1
GROUP BY GOODS_ID )
※ 引述《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
: 不過這樣要用程式分開來取條件,不知是否還有其它的關聯法呢?