美文网首页我爱编程
【MySQL必知必会】第14章:子查询

【MySQL必知必会】第14章:子查询

作者: 100gle | 来源:发表于2018-04-09 16:38 被阅读12次

    14.1 子查询

    子查询即嵌套在其他查询中的查询

    SELECT cust_name, cust_contact
    FROM customers
    WHERE cust_id IN (SELECT cust_id
                         FROM orders
                         WHERE order_num IN (SELECT order_num
                                            FROM orderitems
                                            WHERE prod_id = 'TNT2'));
    
    • 在WHERE子句中使用子查询能够编写出功能很强并且很灵活的SQL语句。
    • 对于能嵌套的子查询的数目没有限制,不过在实际使用时由于性能的限制,不能嵌套太多的子查询。

    14.2 字段子查询

    除了能直接嵌套子查询语句外,还可以嵌套子查询的字段来进行检索:

    SELECT cust_name,
            cust_state,
            (SELECT COUNT(*)
            FROM orders
            WHERE orders.cust_id = customers.cust_id) AS orders
    FROM customers
    ORDER BY cust_name;
    
    • 要注意的是,这里使用到了完全限定列名「order.」以便数据库能快速的定位字段
    • 如果不使用完全限定列名,当数据其他表中存在类似cust_id的命名相同的情况,就会容易检索出其他结果

    相关文章

      网友评论

        本文标题:【MySQL必知必会】第14章:子查询

        本文链接:https://www.haomeiwen.com/subject/gvvihftx.html