13_where型子查询

子查询:
	where型子查询	把内层的查询结果作为外层查询的比较条件。
	from型子查询	把内层的查询结果作为临时表,供外层sql再次查询。
	exists型子查询	把外层的查询结果,拿到内层,看内层的查询是否成立。

-------------------------------

where型子查询:
	把内层的查询结果作为外层查询的比较条件。

1.查询出最新发布的商品信息
select goods_id,goods_name,shop_price from goods 
where goods_id=(select max(goods_id) from goods);

2.查询出每个栏目最贵的商品
select goods_id,cat_id,goods_name,shop_price from goods
where shop_price in (select max(shop_pirce) from goods group by cat_id);
时间: 2024-10-05 18:53:48

13_where型子查询的相关文章

MySQL where型子查询

where型子查询是内层查询的结果,作为外层sql的比较条件. select goods_id, goods_name from goods where goods_id = (select max(goods_id) from         goods); 内层查询为select max(goods_id) from goods 外层查询为select goods_id, goods_name from goods where goods_id 就是在把最大的goods_id的值赋给外层的g

in型子查询陷阱

in 型子查询引出的陷阱 select goods_id from goods where cat_id in (1,2,3) 直接用id,不包含子查询,不会中陷阱 题: 在ecshop商城表中,查询6号栏目的商品, (注,6号是一个大栏目) 最直观的: mysql> select goods_id,cat_id,goods_name from  goods where cat_id in (select cat_id from ecs_category where parent_id=6);

14_from型子查询

子查询: where型子查询 把内层的查询结果作为外层查询的比较条件. from型子查询 把内层的查询结果作为临时表,供外层sql再次查询. exists型子查询 把外层的查询结果,拿到内层,看内层的查询是否成立. ------------------------------- from型子查询: 把内层的查询结果作为临时表,供外层sql再次查询. 查询出最新发布的商品: select * from (select goods_id,cat_id,goods_name from goods or

15_exists型子查询

子查询: where型子查询 把内层的查询结果作为外层查询的比较条件. from型子查询 把内层的查询结果作为临时表,供外层sql再次查询. exists型子查询 把外层的查询结果,拿到内层,看内层的查询是否成立. ------------------------------- exists子查询 把外层的查询结果,拿到内层,看内层的查询是否成立. 当exists后面的查询结果为真时,才取出.为假时不取出. 查询有商品的栏目 select cat_id,cat_name from categor

mysql优化---in型子查询,exists子查询,from 型子查询

in型子查询引出的陷阱:(扫更少的行,不要临时表,不要文件排序就快) 题: 在ecshop商城表中,查询6号栏目的商品, (注,6号是一个大栏目) 最直观的: mysql> select goods_id,cat_id,goods_name from goods where cat_id in (select cat_id from category where parent_id=6); 误区: 给我们的感觉是, 先查到内层的6号栏目的子栏目,如7,8,9,11 然后外层, cat_id in

mysql in型子查询陷阱

现在有两个表,table1和table2,table1有1千万数据(id 主键索引),table2有三条数据(uid字段 3,5,7): select * from table1 where id in ( select uid from table2 ); 眨眼一看感觉这条语句应该很快:可能你会一厢情愿的以为 先执行括号里面的语句,然后在执行外层的select:外层的select用上了 id主键速度应该飞起来才对: 实际上这条语句执行非常慢,我这里测试20s: 通过  explain 分析,这

MySQL from型子查询

把内层sql语句查询的结果作为临时表供外层sql语句再次查询. select goods_id, goods_name from goods where goods_id between 20 and 25; select goods_id, goods_name, cat_id from goods order by cat_id asc, goods_id desc; select goods_id, cat_id, goods_name from (select goods_id, goo

高级数据操作--子查询

一.子查询——标量子查询 子查询的概念 思考: 如何得到php_student表中成绩最高的学生的记录? 1 select * from php_student order by score desc limit 1; 但是,存在一个逻辑问题,如果最高分有很多人,怎么办! 1 insert into php_student values 2 (null,'观世音','female',17,5000,'南海',100), 3 (null,'如来','male',17,6000,'西天',100);

理解 sql 的子查询

子查询 子查询 Table of Contents 总结: 相关阅读 来源: 网上的公开课 数据准备 create table goods ( goods_id mediumint(8) unsigned primary key auto_increment, goods_name varchar(120) not null default '', cat_id smallint(5) unsigned not null default '0', brand_id smallint(5) uns