Home > Database > Mysql Tutorial > How to use MySQL subquery

How to use MySQL subquery

王林
Release: 2023-06-02 23:09:41
forward
1579 people have browsed it

Correlated subquery

Correlated subquery execution process

If the execution of a subquery depends on an external query, it is usually because the table in the subquery uses an external table. And conditional correlation is performed, so every time an external query is executed, the subquery must be recalculated. Such a subquery is called a correlated subquery. As each row of the main query is executed, the correlated subqueries are executed in row-by-row order.

How to use MySQL subquery

Description: Use the columns in the main query in the subquery

Title: Query the last_name, salary and sum of employees whose salary is greater than the average salary of the department Its department_id

Method 1: Related subquery

How to use MySQL subquery

Use subquery in 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`;
Copy after login

from type subquery: subquery As part of from, the subquery must be quoted with (), and the subquery must be named

, and used as a "temporary virtual table".

Title: Query employee ID, salary, sorted by department_name

Use subquery in ORDER BY:

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

EXISTS and NOT EXISTS keywords

Associated subqueries are usually used together with the EXISTS operator to check whether there are rows that meet the conditions in the subquery.

If there is no row that satisfies the condition in the subquery:

The condition returns FALSE

Continue to search in the subquery

If in the subquery There are rows that meet the condition:

Do not continue to search in the subquery

The condition returns TRUE

NOT EXISTS keyword indicates that if a certain condition does not exist, TRUE is returned, otherwise Return FALSE.

Title: Query the employee_id, last_name, job_id, department_id information of the company manager

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);
Copy after login

The subquery is actually a conditional judgment after querying through the unknown table, while the self-join is based on the known Its own data table

performs conditional judgment, so self-join processing is optimized in most DBMS.

The above is the detailed content of How to use MySQL subquery. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:yisu.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template