好像你要OR
或使用IN
聲明。
SELECT i.id
FROM items as i
INNER JOIN items_options as io
ON i.item_id = i.id
WHERE io.option_id IN (60143, 60142)
ORDER BY i.xy ASC
LIMIT 0,50
OR
SELECT i.id
FROM items as i
INNER JOIN items_options as io
ON i.item_id = i.id
WHERE io.option_id = 60143 OR io.option_id = 60142
ORDER BY i.xy ASC
LIMIT 0,50
你不能有一個具有兩個值的option_id
。
編輯:如果你想這兩個值可以使用UNION ALL
查詢:
SELECT x.id
FROM
(
SELECT i.id, i.xy
FROM items as i
INNER JOIN items_options as io
ON i.item_id = i.id
WHERE io.option_id = 60143
UNION ALL
SELECT i.id, i.xy
FROM items as i
INNER JOIN items_options as io
ON i.item_id = i.id
WHERE io.option_id = 60142
) x
ORDER BY i.xy ASC
LIMIT 0,50
或者你可以嘗試加入的items_options
表兩次:
SELECT i.id
FROM items as i
INNER JOIN items_options as io1
ON i.item_id = io1.id
INNER JOIN items_options as io2
ON i.item_id = io2.id
WHERE io1.option_id = 60143 AND io2.option_id = 60142
ORDER BY i.xy ASC
LIMIT 0,50
'WHERE io.option_id = 60143 OR io.option_id = 60142'? – Kalpesh 2012-08-09 21:31:28
你期望什麼樣的結果? – 2012-08-09 21:31:53
我希望所有項目都有項目選項60143和項目選項60142 – user1576248 2012-08-09 21:47:27