>데이터 베이스 >MySQL 튜토리얼 >LEFT JOIN을 사용하여 여러 MySQL 테이블을 업데이트하는 방법은 무엇입니까?

LEFT JOIN을 사용하여 여러 MySQL 테이블을 업데이트하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-15 13:33:26941검색

How to Update Multiple MySQL Tables Using a LEFT JOIN?

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.