在涉及多个表通过表关系或者多次select语句来查询相关信息时,有子查询和表联结的方法。
子查询
定义:在一个select语句中嵌套另一个select语句。
子查询的方式有:
- 作为过滤条件,参与查询。当一个select语句查询的结果是另一个select语句的过滤条件时,可以直接将该select语句嵌套在另一个select语句上,作为过滤条件。
例如:一个 customers 表存储客户信息 ,
另一个orders表存储订单信息:
orders存储有:客户的id。 要求找出购买过商品的客户,并显示客户信息:
按寻常查询:
第一步: 找出购买过商品的客户。
select cust_id from orders group by cust_id;
结果如下:
第二步:根据上图所示的结果,查询相关客户:
select * from customers where cust_id in (1