Nested Query(子查询)在多表查询中具有广泛的应用场景。以下是一些常见的应用场景:
SELECT * FROM orders
WHERE amount > (SELECT AVG(amount) FROM orders)
AND status = '已完成';
SELECT c.customer_id, c.name, SUM(o.amount) AS total_amount, MAX(o.order_date) AS last_order_date
FROM customers c
JOIN orders o ON c.customer_id = o.customer_id
GROUP BY c.customer_id, c.name;
SELECT department_id, AVG(salary) AS avg_salary
FROM employees
GROUP BY department_id
HAVING AVG(salary) = (
SELECT MAX(avg_salary) FROM (
SELECT department_id, AVG(salary) AS avg_salary
FROM employees
GROUP BY department_id
) AS dept_avg_salary
);
SELECT * FROM customers
WHERE customer_id NOT IN (
SELECT DISTINCT customer_id FROM orders
);
SELECT product_id, SUM(sales) AS total_sales
FROM sales
GROUP BY product_id
ORDER BY total_sales DESC
LIMIT 10;
SELECT p.product_name, SUM(s.quantity) AS total_quantity, SUM(s.amount) AS total_amount
FROM products p
JOIN sales s ON p.product_id = s.product_id
GROUP BY p.product_name
ORDER BY total_amount DESC;
SELECT o.order_id
FROM orders o
LEFT JOIN customers c ON o.customer_id = c.customer_id
WHERE c.customer_id IS NULL;
SELECT * FROM products
WHERE price > ? AND category = ?;
这里的 ? 可以是用户输入的参数。通过合理使用Nested Query,可以大大增强SQL查询的灵活性和表达能力,满足各种复杂的数据查询需求。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。