我对这个查询有问题,子查询本身完美工作,但是当我把它放在IN语句中时,结果是完全意外的,任何行包含来自子查询的id。所以我的问题是,我做错了什么?谢谢你的帮助!IN语句中的子查询不能正常工作
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
)
你能解释一下它是如何失败的吗?我不明白“任何行都包含来自子查询的id”它应该完全按照书面的方式工作(如果子查询自己工作),除了不应该在'IN( )'子查询。在最外面的套餐上进行订购。 –
我删除了ORDER BY,并得到了和以前一样的结果。从子查询中我得到了我需要的所有subtemplateID的列表,我自己运行这个子查询,而我得到的列表工作得很好,但是当我把它放入子查询中时,没有与subtemplateID匹配的行匹配我期望的列表并且它们都具有相同的子模板ID id –