나는이MySQL의 : 절
SELECT a.album_id parent, a2.album_id child
FROM album a
LEFT JOIN album a2 ON a2.parent_album_id = a.album_id
WHERE a.album_id = 76
는 기본적으로, 부모와 자녀 값과 같이 반환이 쿼리가 WHERE에서 삭제하는 방법 :
parent child
--------------------
76 64
76 106
내가 그 값을 사용하려는에게의 부모와 아이의 전체 (76, 64, 106), 그래서
DELETE a, ai
FROM album a
LEFT JOIN album_image ai ON ai.album_id = a.album_id
WHERE a.album_id IN (76,64,106)
상기 쿼리를 실행하는 것처럼 다른 테이블에서 삭제 완벽하게 작동합니다! 하지만 쿼리가 동적이어야합니다. 내가 더 성공이 시도했습니다 :
DELETE a, ai
FROM album a
LEFT JOIN album_image ai ON ai.album_id = a.album_id
WHERE a.album_id IN (
SELECT a.album_id parent, a2.album_id child
FROM album a
LEFT JOIN album a2 ON a2.parent_album_id = a.album_id
WHERE a.album_id = 76
)
가 작동하지 않습니다 왜 그것을 얻을, where 절에 서브 쿼리가이 개 값을 반환하기 때문에. 그래서 나는 성공없이 CONCAT_GROUP과 CONCAT_WS를 시도했다.
내 솔루션은 무엇입니까? 감사합니다.
그래서 왜 subselect에서 둘 이상의 값을 선택합니까? –
그것은 내가 지금까지 한 일을 보여주는 것입니다. 나는 1 값 (부모와 자식)을 반환하는 방법도 없다. – Marco