집 >데이터 베이스 >MySQL 튜토리얼 >LEFT JOIN을 사용하여 여러 MySQL 테이블을 업데이트하는 방법은 무엇입니까?
MySQL에서 LEFT JOIN을 통해 여러 테이블 업데이트
질문:
어떻게 업데이트할 수 있나요? 여러 테이블에 걸쳐 LEFT JOIN을 사용하는 테이블의 필드가 있습니까? 다음 LEFT JOIN 쿼리에서 결과 집합의 모든 행을 업데이트하려는 시나리오를 생각해 보십시오.
SELECT T1.* FROM T1 LEFT JOIN T2 ON T1.id = T2.id WHERE T2.id IS NULL
답변:
MySQL을 사용하면 UPDATE를 수행할 수 있습니다. LEFT JOIN을 포함하여 SELECT 문에서 지원되는 모든 조인 유형을 사용하는 문. 올바른 구문은 다음과 같습니다.
UPDATE t1 LEFT JOIN t2 ON t2.id = t1.id SET t1.col1 = newvalue WHERE t2.id IS NULL
SELECT 문에서 더 나은 성능을 얻으려면 NOT IN / NOT EXISTS 구문 사용을 고려하세요.
SELECT t1.* FROM t1 WHERE t1.id NOT IN ( SELECT id FROM t2 )
성능 세부 정보는 다음을 참조하세요. 이 기사: 불완전한 주문 찾기: NOT IN과 비교한 LEFT JOIN의 성능.
그러나 MySQL은 대상 테이블 사용을 지원하지 않습니다. UPDATE 문 내의 하위 쿼리입니다. 따라서 여러 테이블과 관련된 업데이트에는 덜 효율적인 LEFT JOIN 구문을 사용해야 합니다.
위 내용은 LEFT JOIN을 사용하여 여러 MySQL 테이블을 업데이트하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!