오류: MySQL 쿼리에서 테이블이 두 번 지정됨
MySQL에서 테이블을 데이터 소스로 사용하는 동시에 테이블을 업데이트하려고 하면 동일한 쿼리를 실행하면 "'UPDATE'의 대상과 별도의 데이터 소스로 '테이블 'm1'이 두 번 지정되었습니다."라는 오류가 발생할 수 있습니다. 이 오류는 이러한 쿼리를 처리하는 데 있어 MySQL의 제한 사항으로 인해 발생합니다.
이 문제를 해결하려면 하위 쿼리에서 테이블의 별칭을 직접 사용하는 대신 MySQL에서는 사용자가 파생 테이블에서 선택해야 합니다. 여기에는 원본 테이블을 기반으로 임시 테이블을 생성하고 하위 쿼리에서 파생 테이블을 참조하는 작업이 포함됩니다.
수정된 쿼리:
다음은 쿼리의 수정된 버전입니다. 파생 테이블을 활용하여 오류를 방지합니다.
UPDATE manager SET status = 'Y' WHERE branch_id IN ( SELECT branch_id FROM (SELECT * FROM manager) AS m2 WHERE (branch_id, year) IN ( SELECT branch_id, year FROM branch_master WHERE type = 'finance' ) );
파생 테이블("(SELECT * FROM Manager) AS m2"로 표시됨)에서 선택하여 쿼리는 이전 오류를 일으킨 모호성을 방지합니다. 파생 테이블은 독립적인 데이터 소스 역할을 하여 쿼리가 테이블을 업데이트 대상 및 하위 쿼리의 데이터 소스로 참조할 수 있도록 합니다.
위 내용은 동일한 테이블을 업데이트하고 쿼리할 때 MySQL 오류 '테이블이 두 번 지정되었습니다'를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!