在 SQL 中,FOREACH
循環并不存在
以下是一些使用 JOIN、子查詢和 CTE 的示例:
-- 假設有兩個表:orders(訂單)和 order_items(訂單明細)
SELECT o.order_id, SUM(oi.price * oi.quantity) as total_amount
FROM orders o
JOIN order_items oi ON o.order_id = oi.order_id
GROUP BY o.order_id;
-- 假設有兩個表:employees(員工)和 departments(部門)
SELECT e.employee_id, e.name, (
SELECT d.department_name
FROM departments d
WHERE d.department_id = e.department_id
) as department_name
FROM employees e;
-- 假設有兩個表:products(產品)和 product_categories(產品類別)
WITH category_summary AS (
SELECT pc.category_id, COUNT(*) as num_products
FROM products p
JOIN product_categories pc ON p.product_id = pc.product_id
GROUP BY pc.category_id
)
SELECT cs.category_id, cs.num_products
FROM category_summary cs
ORDER BY cs.num_products DESC;
通過使用這些方法,你可以避免在 SQL 中使用 FOREACH
循環,從而提高查詢性能。請注意,這些示例僅用于說明目的,實際情況可能需要根據具體需求進行調整。