이 쿼리에 문제가 있습니다. 하위 쿼리 자체가 완벽하게 작동하지만 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 '를 넣으면 안된다는 점만 다릅니다.)'서브 쿼리. 가장 바깥 쪽에서 주문하십시오. –
ORDER BY를 제거하면 이전과 같은 결과를 얻었습니다. 하위 쿼리에서 필요한 모든 subtemplateID 목록을 얻었습니다.이 하위 쿼리를 자체적으로 실행하고 목록이 제대로 작동하지만 하위 쿼리 내부에 넣으면 subemplateID가없는 행이 예상 한 목록과 일치합니다 그리고 모두 그들과 동일한 subtemplateID id –