MySQL必知必会-11MySQL子查询

来源:互联网 发布:手机拍照软件哪个最好 编辑:程序博客网 时间:2024/05/20 18:54
主要方式是通过IN嵌套多个查询语句完成。
  1. SELECT
  2. cust_name,
  3. cust_contact
  4. FROM
  5. customers
  6. WHERE
  7. cust_id IN (
  8. SELECT
  9. cust_id
  10. FROM
  11. orders
  12. WHERE
  13. order_num IN (
  14. SELECT
  15. order_num
  16. FROM
  17. orderitems
  18. WHERE
  19. prod_id = 'TNT2'
  20. )
  21. );

在WHERE子句中使用子查询,应该保证SELECT语句具有与WHERE子句中相同数目的列,通常,子查询将返回单个列并且与单个列匹配,但如果需要也可以使用多个列。
  1. 子查询多个列匹配格式为
  2. SELECT ...
  3. FROM ot1, ...
  4. WHERE (oe1, ...) IN (SELECT ie1, ... FROM it1, ... WHERE ...);
列oe1对应ie1,同理oe2对应ie2,等等

作为计算字段使用子查询

过滤某个特定的客户ID,仅对客户的订单进行计数。
  1. SELECT
  2. cust_name,
  3. cust_state,
  4. (
  5. SELECT
  6. COUNT(*)
  7. FROM
  8. orders
  9. WHERE
  10. orders.cust_id = customers.cust_id
  11. ) AS orders
  12. FROM
  13. customers
  14. ORDER BY
  15. cust_name;

子查询最常见的使用时在WHERE子句中的IN操作中,以及用来填充计算列。上面就是这两种常见的列子。
1 0
原创粉丝点击