>  기사  >  데이터 베이스  >  mysql 결합 쿼리: 결합 쿼리란 무엇입니까? 결합된 쿼리를 만드는 방법

mysql 결합 쿼리: 결합 쿼리란 무엇입니까? 결합된 쿼리를 만드는 방법

巴扎黑
巴扎黑원래의
2018-05-14 14:49:4311540검색

결합 쿼리란 무엇입니까?

대부분의 SQL 쿼리에는 하나 이상의 테이블에서 데이터를 반환하는 단일 SELECT 문만 포함됩니다. 또한 MySQL을 사용하면 여러 쿼리(여러 SELECT 문)를 실행하고 결과를 단일 쿼리 결과 집합으로 반환할 수 있습니다. 이러한 결합된 쿼리를 통합 쿼리 또는 복합 쿼리라고도 합니다.

결합된 쿼리를 사용해야 하는 두 가지 기본 상황은 다음과 같습니다.

1. 단일 쿼리에서 서로 다른 테이블의 유사한 구조의 데이터를 반환하는 경우

2. 테이블은 여러 쿼리를 실행하고 데이터를 단일 쿼리로 반환합니다.

쿼리와 여러 WHERE 조건 결합 대부분의 경우 동일한 테이블에서 두 쿼리를 결합하면 여러 WHERE 절 조건이 있는 단일 쿼리와 동일한 작업이 수행됩니다. 즉, 다음 단락에서 볼 수 있듯이 여러 WHERE 절이 있는 SELECT 문은 결합된 쿼리로 제공될 수 있습니다. 두 기술 모두 서로 다른 쿼리에서 다르게 수행됩니다. 따라서 특정 쿼리에 대해 어느 기술이 더 나은 성능을 발휘하는지 확인하려면 두 가지 기술을 모두 시도해야 합니다.

결합된 쿼리를 만드는 방법

UNION 연산자를 사용하여 여러 SQL 쿼리를 결합할 수 있습니다. UNION을 사용하면 여러 SELECT 문을 제공하고 해당 결과를 단일 결과 집합으로 결합할 수 있습니다.

UNION 사용

UNION 사용은 매우 간단합니다. 필요한 것은 각 SELECT 문을 제공하고 각 문 사이에 UNION 키워드를 넣는 것입니다.

설명한 대로 UNION을 생성하려면 여러 SELECT 문을 작성해야 합니다. 먼저 단일 명령문을 살펴보겠습니다.

입력:

select vend_id,prod_id,prod_price from products where prod_price <= 5;

출력:

mysql 결합 쿼리: 결합 쿼리란 무엇입니까? 결합된 쿼리를 만드는 방법입력:

select vend_id,prod_id,prod_price from products where vend_id in (1001,1002);

출력 :

mysql 결합 쿼리: 결합 쿼리란 무엇입니까? 결합된 쿼리를 만드는 방법분석: 첫 번째 SELECT는 가격이 5보다 높지 않은 모든 항목을 검색합니다. 두 번째 SELECT는 IN을 사용하여 공급자 1001과 1002가 생산한 모든 품목을 찾습니다.

이 두 문을 결합하려면 다음과 같이 진행하세요.

입력:

select vend_id,prod_id,prod_price from products where prod_price <= 5 union select vend_id,prod_id,prod_price from products where vend_id in (1001,1002);

출력:

mysql 결합 쿼리: 결합 쿼리란 무엇입니까? 결합된 쿼리를 만드는 방법 분석: 이 문은 UNION 키워드로 구분된 이전 두 개의 SELECT 문으로 구성됩니다. UNION은 MySQL에게 두 개의 SELECT 문을 실행하고 출력을 단일 쿼리 결과 집합으로 결합하도록 지시합니다.

참고로 UNION을 사용하는 대신 여러 WHERE 절을 사용하는 동일한 쿼리는 다음과 같습니다.

입력:

select vend_id,prod_id,prod_price from products where prod_price <= 5 or vend_id in (1001,1002);

이 간단한 예에서는 UNION을 사용하는 것이 아마도 더 복잡할 것입니다. WHERE 절. 그러나 더 복잡한 필터의 경우 또는 단일 테이블 대신 여러 테이블에서 데이터를 검색하는 경우 UNION을 사용하면 프로세스가 더 간단해질 수 있습니다.

위 내용은 mysql 결합 쿼리: 결합 쿼리란 무엇입니까? 결합된 쿼리를 만드는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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