我試圖從數據透視表中獲取一組值,其中列A等於值的數組,因此例如ID 12有attribute_value_id等於3和9.可以這樣做嗎?如果我使用and
然後我沒有得到任何值我走了這麼遠......Mysql其中列A = X和列B = Y和或列B = Z
ID | post_id | attribute_id | attribute_value_id
8 12 1 3
9 12 2 13
10 13 1 3
11 13 2 9
12 16 1 3
13 16 2 9
88 11 1 1
89 11 2 8
90 11 3 18
91 11 4 22
查詢...
select *
from `searching_for_posts`
where (
select count(*)
from `attributes`
inner join `searching_for_attributes`
on `attributes`.`id` = `searching_for_attributes`.`attribute_id`
where `searching_for_attributes`.`searching_for_post_id` = `searching_for_posts`.`id`
and (`attribute_value_id` = 3 and `attribute_value_id` = 9)
) >= 1
。如果我使用or
那麼我得到3個值,但它應該返回2.我有有限的SQL體驗。
'(\'attribute_value_id \'= 3 \'attribute_value_id \'= 9)'是邏輯上是不可能....'attribute_value_id'不能同時擁有'3'和'9'作爲它的值,你是不是指''(\'attribute_value_id \'= 3或'attribute_value_id \'= 9)....或者你意思是'(\'attribute_value_id \'IN(3,9)' –
@MarkBaker不,我想要的是獲得像這樣的數據,如果有人搜索一個產品,他們希望所有產品是藍色的,並有內置的CD播放器,所有的屬性數據都在一個數據透視表中,每個項目都有自己的行,這可能是一個問題,讓我知道這是否足夠清晰 –
1.看看你的數據。 ID 12. Typo?2.這是什麼表? at是另一個表的數據? – philipxy