我遇到了这个查询的问题,子查询本身运行得很好,但是当我把它放在IN语句中时,结果完全出乎意料,任何行都包含来自子查询的id。所以我的问题是,我做错了什么?谢谢你的帮助!
SELECT *
FROM `wp_2_temp_elements`
WHERE subtemplateID IN (
SELECT bridge.sub_templates
FROM `wp_2_templates` AS templates
INNER JOIN `wp_2_b_templates_sub_templates` AS bridge ON templates.id = bridge.templates
WHERE templates.parent = 928
OR templates.id = 928
ORDER BY templates.id DESC
)
答案 0 :(得分:0)
我猜你真的不想在内部查询中使用join
。只是一个相关的子查询:
SELECT *
FROM `wp_2_temp_elements` templates
WHERE subtemplateID IN (
SELECT bridge.sub_templates
FROM `wp_2_b_templates_sub_templates` AS bridge
WHERE templates.id = bridge.templates and
(templates.parent = 928 OR templates.id = 928)
)
ORDER BY templates.id DESC;
order by
在子查询中也没有意义。