1. 子查询
即嵌套在其他查询中的查询。
SELECT与剧中,子查询总是从内向外处理。在处理上面的SELECT语句时,MySql实际上执行了两个操作。
首先执行:SELECT order_num FROM orderitems WHERE prod_id = 'TNT2'
次查询返回两个订单号 20005,20007。然后这两个值以IN操作符要求的逗号分隔的格式传递给外部查询的WHERE子句。外部查询变成:SELECT cust_id FROM orders WHERE order_num in(20005,20007)
下一步检索这些客户ID的客户信息。
为了执行上述SELECT语句,MySql实际上必须执行3条SELECT语句。最里面的子查询返回订单号列表,此列表用于其外面的子查询的WHERE子句。外面的子查询返回客户ID列表,此客户ID列表用于最外层查询的WHERE子句。最外层查询返回所需的数据。
2. 作为计算字段使用子查询