동일한 테이블을 업데이트하고 쿼리할 때 MySQL 오류 '테이블이 두 번 지정되었습니다'를 해결하는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-11-11 20:48:02
원래의
452명이 탐색했습니다.

How to Resolve MySQL Error

오류: 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿