求 一句sql语句 急急急

life169 2012-07-08 05:13:07
MYSQL数据库

表user 字段:id,sid,liuyan
++++++++++++++++++++++++
id sid liuyan
1 3 很好的
2 3 什么东东
3 3 要下雨了
4 4 我的书啊
5 5 看什么的电影
6 3 吃饭不管事
7 4 眼睛听话
8 5 不要说话
9 7 风雨无阻
10 9 来了去了
11 8 不是不是
12 7 欧洲杯歇了
13 9 不要管了

。。。。。。。

要求 输出效果:
id sid liuyan
1 3 很好的,什么东东,要下雨了,吃饭不管事
2 4 我的书啊,眼睛听话
3 5 看什么的电影,不要说话
4 7 风雨无阻,欧洲杯歇了
5 8 不是不是
6 9 来了去了,不要管了

求一句sql语句,也就是 group by sid 并且把liuyan合并显示。
...全文
130 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jdgdf566 2013-07-16
  • 打赏
  • 举报
回复
看不懂。这是要查询数据库吗,青年。
huangqing_80 2012-07-08
  • 打赏
  • 举报
回复
mysql和mssql还是有些不同的吧,mssql里面没有group_concat这条语句嘀
life169 2012-07-08
  • 打赏
  • 举报
回复

自己解决了 用了 group_concat() 就可以了

select id,sid,group_concat(liuyan) from info group by id;

life169 2012-07-08
  • 打赏
  • 举报
回复
谢谢 josy 大侠

我的表名是 info,三个字段名 id sid liuyan

检索语句是不是就这样:
select row_number() over(order by getdate()) as id,
sid,
liuyan=stuff((select ','+liuyan from info where sid=t.sid for xml path('')),1,1,'')
from info t
group by sid

可以没有得到任何结果,还请大侠再指点!!!

百年树人 2012-07-08
  • 打赏
  • 举报
回复
if object_id('[tb]') is not null drop table [tb]
go
create table [tb]([id] int,[sid] int,[liuyan] varchar(12))
insert [tb]
select 1,3,'很好的' union all
select 2,3,'什么东东' union all
select 3,3,'要下雨了' union all
select 4,4,'我的书啊' union all
select 5,5,'看什么的电影' union all
select 6,3,'吃饭不管事' union all
select 7,4,'眼睛听话' union all
select 8,5,'不要说话' union all
select 9,7,'风雨无阻' union all
select 10,9,'来了去了' union all
select 11,8,'不是不是' union all
select 12,7,'欧洲杯歇了' union all
select 13,9,'不要管了'
go

select row_number() over(order by getdate()) as id,
sid,
liuyan=stuff((select ','+liuyan from tb where sid=t.sid for xml path('')),1,1,'')
from tb t
group by sid

/*
id sid liuyan
-------------------- ----------- -----------------------------------------------
1 3 很好的,什么东东,要下雨了,吃饭不管事
2 4 我的书啊,眼睛听话
3 5 看什么的电影,不要说话
4 7 风雨无阻,欧洲杯歇了
5 8 不是不是
6 9 来了去了,不要管了

(6 行受影响)
*/

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧