MySQL-子查询,派生表,通用表达式

Posted Nice1949

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL-子查询,派生表,通用表达式相关的知识,希望对你有一定的参考价值。

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;

 

以上是关于MySQL-子查询,派生表,通用表达式的主要内容,如果未能解决你的问题,请参考以下文章

MySQL的SQL语句 - 数据操作语句(13)- 子查询

ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效

MySQL的SQL语句 - 数据操作语句(13)- 子查询(10)

sqlserver 创建视图失败,原因:ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效

ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效,除非 TOP、OFFSET 或 FOR XML

那个mysql 子查询和连接查询 一般常用哪个 谁效率高些