MySQL은 현재 가장 인기 있는 관계형 데이터베이스 관리 시스템 중 하나입니다. 데이터베이스 운영자에게는 데이터 쿼리, 계산 및 처리가 필수적인 기술입니다. 그러나 때로는 결과를 더 쉽게 분석하고 처리할 수 있도록 일부 결과를 결합해야 하는 경우도 있습니다. MySQL에는 이를 달성하는 여러 가지 방법이 있습니다.
아래에서는 쿼리 결과를 병합하기 위해 일반적으로 사용되는 몇 가지 MySQL 방법을 소개합니다.
UNION은 쿼리 결과를 병합하는 가장 일반적인 방법 중 하나입니다. 여러 SELECT 문의 결과를 결합하고 최종 결과에서 중복 행을 제거할 수 있습니다.
예를 들어, 동일한 열을 가진 두 개의 테이블 A와 B가 있습니다.
SELECT column1, column2 FROM A UNION SELECT column1, column2 FROM B;
이 쿼리는 테이블 A와 B의 데이터를 병합하고 중복 행을 제거합니다. UNION은 두 개의 SELECT 문의 결과만 결합할 수 있다는 점에 유의해야 합니다. 세 개 이상의 SELECT 문의 결과를 결합해야 하는 경우 UNION 연산자를 여러 번 사용해야 합니다.
UNION ALL은 UNION과 매우 유사하지만 중복 행을 제거하지 않습니다. UNION ALL을 사용하면 중복 행이 유지됩니다.
예를 들어, 동일한 열을 가진 두 개의 테이블 A와 B가 있습니다.
SELECT column1, column2 FROM A UNION ALL SELECT column1, column2 FROM B;
이 쿼리는 테이블 A와 B의 데이터를 병합하고 중복 행을 유지합니다.
UNION ALL은 중복 행을 제거할 필요가 없으므로 UNION보다 빠르고 효율적입니다. 그러나 데이터가 매우 큰 경우 쿼리 성능에 영향을 미칠 수 있습니다.
INNER JOIN은 둘 이상의 테이블의 데이터를 결합하고 공통 열의 데이터를 일치시킬 수 있습니다. 이 작업은 두 테이블의 데이터가 일치하는 경우에만 결과를 반환합니다.
예를 들어 두 개의 테이블 A와 B가 있고 동일한 열 열1이 있습니다.
SELECT A.column1, A.column2, B.column3 FROM A INNER JOIN B ON A.column1 = B.column1;
이 쿼리는 테이블 A와 B에서 일치하는 데이터 행을 반환합니다. 이 예에서는 일치하는 행만 반환됩니다.
LEFT JOIN은 INNER JOIN과 매우 유사하며 둘 이상의 테이블의 데이터를 병합하고 공통 열의 데이터를 일치시킬 수도 있습니다. 그러나 일치하는 항목뿐만 아니라 왼쪽 테이블에 일치 항목이 없는 결과에 대해서도 결과를 반환합니다.
예를 들어 두 개의 테이블 A와 B가 있고 동일한 열 열 1이 있습니다.
SELECT A.column1, A.column2, B.column3 FROM A LEFT JOIN B ON A.column1 = B.column1;
이 쿼리는 테이블 A의 모든 데이터 행을 반환하고, 일치하는 행이 없으면 테이블 B의 일치하는 데이터 행을 반환합니다. 테이블 A와 일치하는 데이터가 있는 테이블 B에서는 NULL 값이 반환됩니다.
RIGHT JOIN은 LEFT JOIN의 반대이며, 오른쪽 테이블에 일치하는 항목이 없는 결과를 반환합니다.
예를 들어, 두 개의 테이블 A와 B가 있고 두 열의 열 1은 동일합니다.
SELECT A.column1, A.column2, B.column3 FROM A RIGHT JOIN B ON A.column1 = B.column1;
이 쿼리는 테이블 B의 모든 데이터 행을 반환하고 테이블 A에 행이 없으면 테이블 A의 일치하는 데이터 행을 반환합니다. 테이블 B와 일치하는 데이터가 일치하는 테이블 A가 있으면 NULL 값이 반환됩니다.
FULL OUTER JOIN은 두 테이블에 일치하는 항목이 없더라도 두 테이블의 모든 데이터 행을 병합할 수 있습니다.
MySQL은 FULL OUTER JOIN 문을 지원하지 않습니다. 그러나 UNION ALL은 LEFT JOIN 및 RIGHT JOIN과 함께 사용하여 유사한 효과를 얻을 수 있습니다.
예를 들어 두 개의 테이블 A와 B가 있고 동일한 열 열 1이 있습니다.
SELECT A.column1, A.column2, B.column3 FROM A LEFT JOIN B ON A.column1 = B.column1 UNION ALL SELECT A.column1, A.column2, B.column3 FROM A RIGHT JOIN B ON A.column1 = B.column1 WHERE A.column1 IS NULL;
이 쿼리는 테이블 A와 테이블 B의 모든 데이터 행에 대한 일치 항목을 반환할 뿐 아니라 일치하는 데이터 행도 반환하지 않습니다.
결론
위는 MySQL에서 쿼리 결과를 병합하는 일반적인 방법입니다. 선택하는 방법은 필요한 결과와 쿼리 성능에 따라 달라집니다.
쿼리를 실행할 때는 항상 쿼리 효율성에 주의하세요. 대부분의 경우 UNION 작업은 시간이 오래 걸립니다. 대규모 데이터 세트로 쿼리하는 경우 UNION 명령을 사용하지 말고 대신 사용 가능한 다른 방법을 사용하여 쿼리 성능을 최적화해야 합니다.
물론 특정 비즈니스 시나리오의 경우 실제 비즈니스 요구 사항에 따라 사용할 방법을 선택해야 합니다.
위 내용은 쿼리 결과를 병합하기 위한 몇 가지 일반적인 MySQL 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!