>  기사  >  데이터 베이스  >  MySQL 하위 쿼리를 사용하는 방법

MySQL 하위 쿼리를 사용하는 방법

王林
王林앞으로
2023-06-02 23:09:411559검색

상관 서브 쿼리

상관 서브 쿼리 실행 과정

서브 쿼리의 실행이 외부 쿼리에 의존하는 경우는 대개 서브 쿼리의 테이블이 외부 테이블을 사용하고 조건부 연관을 수행하기 때문이므로 실행될 때마다 둘 다 외부 쿼리 쿼리 및 하위 쿼리를 다시 계산해야 합니다. 이러한 하위 쿼리를 상관 하위 쿼리라고 합니다. 기본 쿼리의 각 행이 실행되면 상관된 하위 쿼리가 행 단위로 실행됩니다.

MySQL 하위 쿼리를 사용하는 방법

지침: 하위 쿼리에 기본 쿼리의 열을 사용하세요

제목: 부서의 평균 급여보다 급여가 많은 직원의 성, 급여, 부서 ID를 쿼리하세요

방법 1: 관련 하위 쿼리

MySQL 하위 쿼리를 사용하는 방법

FROM

SELECT last_name,salary,e1.department_id
FROM employees e1,(SELECT department_id,AVG(salary) dept_avg_sal FROM employees GROUP
BY department_id) e2
WHERE e1.`department_id` = e2.department_id
AND e2.dept_avg_sal < e1.`salary`;

from 유형 하위 쿼리에서 하위 쿼리 사용: 하위 쿼리는 from의 일부이므로 하위 쿼리는 ()로 인용해야 하며 하위 쿼리에는 다른 이름

을 지정하고 그림 "임시"로 처리해야 합니다. 가상 테이블'을 사용합니다.

제목: 부서명별로 정렬된 직원 ID, 급여 쿼리

ORDER BY에서 하위 쿼리 사용:

SELECT employee_id,salary
FROM employees e
ORDER BY (
SELECT department_name
FROM departments d
WHERE e.`department_id` = d.`department_id`
);

EXISTS 및 NOT EXISTS 키워드

관련 하위 쿼리는 일반적으로 EXISTS 연산자와 함께 사용됩니다. 하위 쿼리의 조건입니다.

서브 쿼리에 조건을 만족하는 행이 없는 경우:

조건이 FALSE를 반환합니다

서브 쿼리에서 계속 검색하세요

서브 쿼리에서 조건을 만족하는 행이 있는 경우:

계속하지 마세요. 하위 쿼리에서 검색

조건이 TRUE를 반환합니다

NOT EXISTS 키워드는 특정 조건이 존재하지 않으면 TRUE가 반환되고, 그렇지 않으면 FALSE가 반환된다는 의미입니다.

제목: 회사 관리자의 직원 ID, 성, 직업 ID, 부서 ID 정보를 쿼리

SELECT employee_id, last_name, job_id, department_id
FROM employees e1
WHERE EXISTS ( SELECT *
FROM employees e2
WHERE e2.manager_id =
e1.employee_id);

서브 쿼리는 실제로 알 수 없는 테이블을 통해 쿼리한 후 조건부 판단인 반면, Self Join은 알려진 자체 데이터 테이블을 기반으로 합니다

판단에 따라 self-join 처리는 대부분의 DBMS에서 최적화됩니다.

위 내용은 MySQL 하위 쿼리를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제