所以这第一个SQL返回零行:为什么会发生这种SQL不是在这两个领域都包含工作
SELECT b.b_id
FROM `buy` b
INNER JOIN `buy_multiples` AS bm
ON b.b_id = bm.b_id
AND b.buy_status IN (2)
WHERE bm.`option_type` = 'area_id'
AND bm.selected_option_key IN (10)
AND bm.`option_type` = 'bzips'
AND bm.selected_option_key IN (37027)
GROUP BY b.b_id
这第二个SQL回报B_ID 5024和4987:
SELECT b.b_id
FROM `buy` b
INNER JOIN `buy_multiples` AS bm
ON b.b_id = bm.b_id
AND b.buy_status IN (2)
WHERE bm.`option_type` = 'bzips'
AND bm.selected_option_key IN (37027)
GROUP BY b.b_id
这第三个SQL回报B_ID 5024和4987和4989:
SELECT b.b_id
FROM `buy` b
INNER JOIN `buy_multiples` AS bm
ON b.b_id = bm.b_id
AND b.buy_status IN (2)
WHERE bm.`option_type` = 'area_id'
AND bm.selected_option_key IN (10)
GROUP BY b.b_id
为什么第一个返回零行?
东西看起来不正确的在这里。 5024如何进入查询2和3?它的'option_type'值是什么?你确定你在同一个数据库中运行查询吗? – 2013-04-30 03:17:57
检查此小提琴http://sqlfiddle.com/#!2/1222e/4。你的第一个查询可以正常运行... – Nalaka526 2013-04-30 03:33:37
你是对的。我搞砸了第一个查询。 OR从我的调试中遗留下来。它被认为是一个AND – randy 2013-04-30 12:52:04