select 中有子查询 如何group by

select(selecta.namefrombaseawherea.id=b.s_id)asddfrombaseb现在查出来的name是有重复的,使用groupby的话... select (select a.name from base a where a.id=b.s_id) as dd
from base b
现在查出来的name是有重复的,使用group by 的话 又不允许,现在不知道如何去重了

其实可以使用 一下语句来实现的
select b.name
from base b ,base a
where b.id=a.s_id
group by b.name
但是由于开发人的需要只能 使用第一种方法

希望各位大侠 帮小弟解答一下~
展开
 我来答
匿名用户
2011-08-26
展开全部
select (select a.name from base a where a.id=b.s_id) as dd from base b;
由于select a.name from base a where a.id=b.s_id查出来的数据必须是一条才正常执行,如果是多条,你是要取任意一条? 可以取第一条数据
roy_88
2011-08-26 · TA获得超过3696个赞
知道大有可为答主
回答量:2914
采纳率:100%
帮助的人:2737万
展开全部
select (select top 1 a.name from base a where a.id=b.s_id) as dd
from base b
用top 1或min/max都同
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lwl2046
2011-08-26 · TA获得超过405个赞
知道小有建树答主
回答量:994
采纳率:0%
帮助的人:949万
展开全部
select (select distcint a.name from base a where a.id=b.s_id) as dd
from base b
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
老油条精选
2011-08-26 · TA获得超过147个赞
知道答主
回答量:108
采纳率:0%
帮助的人:85.3万
展开全部
select (select distinct a.name from base a where a.id=b.s_id) as dd
from base b
追问
no 不行   
是因为b.s_id 有重复 导致的
追答
select (select a.name from base a where a.id=b.s_id) as dd
from base b
上面的语句完全可以改为:
select name as dd from base where id = s_id
接着是说b.s_id有重复
那么就改为:
select name as dd from base where id in (select distinct s_id from base)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
424xtle147
2011-08-27 · TA获得超过175个赞
知道答主
回答量:554
采纳率:0%
帮助的人:327万
展开全部
select * from 表明 where 物料 in (select distinct 无聊 from 表)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式