关于sql里的一个复杂查询问题???

zhang4138151 2009-08-24 10:35:22
现在有一个主表 A 里边有2个字段 id name

还有一个附表 B 里边有三个字段 id a_id add_date

数据是 A 表里的一条记录会对应 B 里的多个加入时间

问题来了,如果用普通的多表查询,得到的数据会是若干条加入时间不同但是其他数据都一样的数据

即:
select a.id, a.name, b.add_date from A a, B b where a.id = b.a_id

1 tom 2009-4-2
2 tom 2009-4-3
3 tom 2009-4-4
...

有没有什么办法可以将数据整合到一条记录里??
...全文
64 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuhuijin 2009-08-24
  • 打赏
  • 举报
回复
请将你的问题描述清楚,什么叫整合到一条里面?
是不是一个id对应多个时间时
就显示为
1 tom 2009-4-2,2009-4-3,2009-4-4

2 tom 2009-4-2,2009-4-3

是这样吗?
csuxp2008 2009-08-24
  • 打赏
  • 举报
回复
select name,wm_concat(add_date)
from
(
select a.id, a.name, b.add_date
from A a, B b
where a.id = b.a_id
)
group by name;

这样将相同姓名的add_date信息整合到一条记录中
zhang4138151 2009-08-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 yuhuijin 的回复:]
请将你的问题描述清楚,什么叫整合到一条里面?
是不是一个id对应多个时间时
就显示为
1 tom 2009-4-2,2009-4-3,2009-4-4

2 tom 2009-4-2,2009-4-3

是这样吗?
[/Quote]
诶 不好意思,没说清楚,就是放在一条记录的一个字段里边,中间逗号分隔
cosio 2009-08-24
  • 打赏
  • 举报
回复
没有说清楚题目吧!!把要的结果贴出来!
ojuju10 2009-08-24
  • 打赏
  • 举报
回复
楼主是这个意思:
select a.id|| a.name||b.add_date from A a, B b where a.id = b.a_id
小灰狼W 2009-08-24
  • 打赏
  • 举报
回复
楼主的查询结果应该是
1 tom 2009-4-2
1 tom 2009-4-3
1 tom 2009-4-4
...
才对吧
oracle版本在10g以上的话可以用1楼的方法

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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