求一条Insert语句!

黑马 2003-10-17 03:01:10
表A的结构如下:
a_id a_name
1 aa
2 bb

表B的结构如下:
b_id a_id b_name b_others
1 1 aaa k
2 1 bbb k
3 1 ccc k

表A与表B是一对多的关系,b_id为主键,必须唯一

要求复制一份B表里某一个a_id的数据作为新的a_id对应的B表的数据,即A表里的一条新数据为:
a_id a_name
1 aa
2 bb
3 cc (new)

那B表里的新数据为(复制了a_id=1对应的B的数据):
b_id a_id b_name b_others
1 1 aaa k
2 1 bbb k
3 1 ccc k
……
n 3 aaa l (new)
n+1 3 bbb l (new)
n+2 3 ccc l (new)


这条Insert语句如何写?
...全文
98 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wsdch 2003-10-22
  • 打赏
  • 举报
回复
你需要的SQL语句中主要的问题是生成一个序列号,是否可以针对表B.b_id和表C.id创建一个SEQUENCE
beckhambobo 2003-10-21
  • 打赏
  • 举报
回复
insert into b
select (select max(b_id) from b)+rownum,rownum,topic,6 from c where id=1
黑马 2003-10-20
  • 打赏
  • 举报
回复
up
黑马 2003-10-20
  • 打赏
  • 举报
回复
[最新需求如下]
表C结构如下:
name order topic id
aa 1 aaa 1
bb 2 bbb 1
cc 4 ccc 1

复制表C的id为1的数据一份,其中name和topic与原数据相同,order能够从1开始以1递增重新排序,id为新的6,即新的数据如下:
name order topic id
aa 1 aaa 6
bb 2 bbb 6
cc 3 ccc 6

请问如何写insert语句?
beckhambobo 2003-10-18
  • 打赏
  • 举报
回复
这里有介绍分析函数:
http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96540/functions2a.htm#81409
黑马 2003-10-18
  • 打赏
  • 举报
回复
分析什么?能说清楚点吗?
beckhambobo 2003-10-18
  • 打赏
  • 举报
回复
oracle的分析函数
黑马 2003-10-17
  • 打赏
  • 举报
回复
over什么意思?
beckhambobo 2003-10-17
  • 打赏
  • 举报
回复
insert into b select (select max(b_id) from b)+rownum,max(b_id) over(order by b_id),b_name,1 from b where a_id=1;

17,082

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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