我在http://sqlfiddle.com/#!9/b6015c6/2我需要完美的MySQL查詢得到結果,因爲我想
我的表模式創建的SQL撥弄如下:
> assignedattributeid (TABLE)
> id INT(10)
> productid INT(10)
> attributeid INT(10)
>
> products (TABLE)
> id INT(10)
> productname VARCHAR(50)
假設記錄爲下:
表:assignedattributeid
id productid attributeid
1 5 10
2 5 11
3 6 11
4 7 10
表:產品
id productname
5 P1000
6 P2000
7 P3000
其實我想獲得所有這些產品,其中attributeid 10和11分配。
我使用此查詢:選擇不同的產品* FROM產品留下 上assignedattributeid.productid = products.id 加入assignedattributeid其中assignedattributeid.attributeid在(10,11)
但它確實不行。它顯示所有記錄。其實它應該只顯示P1000產品。
查詢中的任何建議?
當然你會得到所有的條目,因爲(10,11)中的assignedattributeid.attributeid確實匹配所有條目。你爲什麼期望只選擇P1000產品? – arkascha
@arkascha - 「**兩個**屬性10和11都被賦值」。 –
其實我只需要那些屬性(即10和11)都必須分配的產品。如果任何一個匹配,那麼它不應該返回。在我的項目中,我創建了屬性ID的複選框。因此,如果用戶選擇任意多個複選框,那麼只有這些產品纔會顯示選中複選框的位置。在我的項目中,複選框的值將是10,11,這是我在給定的小提琴示例中使用的 – user3264863