我對這個查詢有問題,子查詢本身完美工作,但是當我把它放在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 –