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

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

王林
풀어 주다: 2023-06-02 23:09:41
앞으로
1631명이 탐색했습니다.

상관 서브 쿼리

상관 서브 쿼리 실행 과정

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

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

관련 라벨:
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿