mysql --子查询


标量子查询
把价格最高的商品取出来???
select * from goods order by goods_price desc limit 1;

可是价格最高的可能有很多条数据呢?
所以,换一种方式
1,查出最高的价格
select max(goods_price) from goods;
2,根据最高价查询
select * from goods where goods_price = (select max(goods_price) from goods);

列子查询
1,查询一列
select brand_id from brand;
2,select * from goods where brand_id in (select brand_id from brand);

行子查询
我要查出价格最高而且brand_id最大的商品
1,得到最高价,得到最大brand_id
select max(goods_price),max(brand_id) from goods;

2,根据条件查询
select * from goods where (goods_price, brand_id)=(select max(goods_price),max(brand_id) from goods);

表子查询
查出每个品牌(brand_id)最低价的一个
1,可以使用统计函数
select goods_name,min(goods_price) from goods group by brand_id;

2,使用表子查询,,不使用任何统计函数
2.1,先查出每个品牌的最低价
select * from goods order by goods_price asc;

2.2,跟聚这个表再分组
select * from (select * from goods order by goods_price asc) as g group by brand_id;
有点问题, 先略过这里---------------------------------------------------------------------------

3,使用自然内连接
1,查出每个品牌的最低价
select brand_id,min(goods_price) as goods_price from goods group by brand_id;

select * from goods natural join (select brand_id,min(goods_price) as goods_price from goods group by brand_id) as b;


浙公网安备 33010602011771号