首頁  >  文章  >  後端開發  >  where子查询懵了,

where子查询懵了,

WBOY
WBOY原創
2016-06-23 14:14:26937瀏覽

本帖最后由 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 也是记录集(因为每行都有一个)

当然就可以比较了

好 我也会写这种查询了。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn