where子查询懵了,

WBOY
发布: 2016-06-23 14:14:26
原创
941 人浏览过

本帖最后由 u010572351 于 2013-06-28 17:14:25 编辑



 select goods_id,cat_id, goods_name from goods where goods_id=
 (select max(goods_id) from goods);

语句没有问题问题,返回正确结果!但是:

意思大概是:查询商品表中最后添加的商品信息(goods_id最大),
想法我懂,但是where条件后面的条件值是一个select语句, 他虽然返回了一个最大值,但是他是一个select语句啊,应该是一个结果集,不是一个int啊,怎么能和goods_id做比较?懵了。



回复讨论(解决方案)

如果是结果集内是单个结果 是可以用=符号的
如果是多个结果,往往用in.   一般来说看自己需求来写,这样基本上能判定子查询结果是什么(单个or多个),再选用合适的运算符

总之就是这种是可以的,因为结果集只有一个结果

如果是结果集内是单个结果 是可以用=符号的
如果是多个结果,往往用in.   一般来说看自己需求来写,这样基本上能判定子查询结果是什么(单个or多个),再选用合适的运算符

总之就是这种是可以的,因为结果集只有一个结果

是这样的,感谢!

子查询的结果可以作为另一个查询的条件,当你查询的结果只有一条时可以用 = 

对的,select max(goods_id) from goods) 返回的是记录集
而 goods_id=(select max(goods_id) from goods)
中的 goods_id 也是记录集(因为每行都有一个)

当然就可以比较了

好 我也会写这种查询了。

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板