MySQL-子查询
MySQL子查询是嵌套在另一个查询中的查询。
MySQL子查询还可以嵌套在另一个子查询中。
MySQL子查询称为内部查询,而包含子查询的查询称为外部查询。
查询返回在位于美国(USA)的办公室工作的员工。 SELECT
lastName, firstName
FROM
employees
WHERE
officeCode IN (SELECT
officeCode
FROM
offices
WHERE
country = 'USA');
MySQL-派生式
派生式和子查询通常可互换使用。当SELECT
语句的FROM
子句中使用独立子查询时,我们将其称为派生表
子查询不同,派生表必须具有别名,以便稍后在查询中引用其名称。
实例:
orders表和orderdetails表中获得2013年销售收入最高的前5名产品: SELECT
productCode,
ROUND(SUM(quantityOrdered * priceEach)) sales
FROM
orderdetails
INNER JOIN
orders USING (orderNumber)
WHERE
YEAR(shippedDate) = 2013
GROUP BY productCode
ORDER BY sales DESC
LIMIT 5;
MySQL-公共表达式(CTE)
公用表表达式是一个命名的临时结果集,仅在单个SQL语句的执行范围内存在。
查询顾客信息: WITH customers_in_usa AS (
SELECT
customerName, state
FROM
customers
WHERE
country = 'USA'
) SELECT
customerName
FROM
customers_in_usa
WHERE
state = 'CA'
ORDER BY customerName;