这种SQL怎么写,多对多的关系,Update问题,求教

LunTanZeng 2008-03-11 09:45:06
有两个表 \
table1:
ID Name
-------------------
1 aa
1 bb
2 cc
3 dd
4 ee
5 aa
...................

table2

sID sName
-------------------
aa
bb
cc
ee
aa
...................

现在要更新表table2
结果如下
sID sName
-------------------
1 aa
1 bb
2 cc
4 ee
1 aa
.............


...全文
265 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
knowledge_Is_Life 2008-05-01
  • 打赏
  • 举报
回复
没遇到过这种情况.
tcmakebest 2008-03-19
  • 打赏
  • 举报
回复
看上去表2都没有主键的,如何更新呢?
ericxieforever 2008-03-19
  • 打赏
  • 举报
回复
楼上你用SQL-server吧,语法和oracle不一样的
iamme81 2008-03-18
  • 打赏
  • 举报
回复
不必那么麻烦吧!

insert into table1 select 1,'aa'
union select 1,'bb'
union select 2,'cc'
union select 3,'dd'
union select 4,'ee'

insert into table2 select NULL,'aa'
union select NULL,'bb'
union select NULL,'cc'
union select NULL,'ee'
union select NULL,'aa'


update table2 set SID=ID
from table1,table2
where table1.Name=table2.SName

select * from table2

1 aa
1 bb
2 cc
1 aa
4 ee
ericxieforever 2008-03-18
  • 打赏
  • 举报
回复
更新时取table1表中name重复的纪录的id的规则是什么?比如aa的选择?是选ID小的吗?
bzszp 2008-03-11
  • 打赏
  • 举报
回复
UPDATE TABLE2 SET SID=(SELECT MIN(ID) FROM TABLE1 WHERE TABLE1.NAME=TABLE2.NAME)
WHERE EXISTS(SELECT ID FROM TABLE1 WHERE TABLE1.NAME=TABLE2.NAME);

17,140

社区成员

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

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