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

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的命名相同的情况,就会容易检索出其他结果
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.表中的任何列都可以作为主键, 只要它满足以下条件:任意两行都不具有相同的主键值;每一行都必须具有一个主键值( ...
    Cherryjs阅读 706评论 0 0
  • 本书所用的表: 第一章:了解SQL 数据库:保存有组织的数据的容器(通常是一个文件或一组文件)。 数据库软件:DB...
    狼牙战士阅读 929评论 0 1
  • 注:这一系列的文章是《SQL必知必会》第四版的读书笔记。 14.组合查询 利用UNION操作符将多条SELECT语...
    zuyuxia阅读 280评论 0 0
  • 1.简介 mysql是一个快速的、多线程的、多用户的、支持健壮SQL的数据库管理系统(DBMS)。mysql可以应...
    at小宇阅读 939评论 0 2
  • 床上摆着一些刚收的衣服,衣柜里被塞得满满的,没有地方放置,看着房间乱槽槽的心情很烦燥。 打算把冬天的衣服挑出来,放...
    凇凇的妈妈阅读 303评论 0 1