首页 新闻 会员 周边 捐助

sql查询问题

1
悬赏园豆:50 [已解决问题] 解决于 2016-02-24 08:18
表1
字段1 字段2
a 1
a 2
a 3
b 1
b 2
表2
字段1 字段2
a 北京
a 上海
b 北京
要返回表3
字段1 字段2 字段 3
a 1 北京
a 2 上海
a 3
b 1 北京
sql语句要怎么写?
浩轩的主页 浩轩 | 初学一级 | 园豆:157
提问于:2016-02-22 22:24
< >
分享
最佳答案
1
with T as (select row_number() over (partition by 字段1 order by 字段2) rm,字段1,字段2 from 表2)
select 表1.字段1,表1.字段2,T.字段2
from 表1 
left join T on 表1.字段1=T.字段1 and 表1.字段2=T.rm

 

收获园豆:50
米修君 | 小虾三级 |园豆:553 | 2016-02-23 09:36

谢谢,已用分组排序解决问题

浩轩 | 园豆:157 (初学一级) | 2016-02-24 08:17
其他回答(2)
0

返回的表3是不是数据不全?

顾晓北 | 园豆:10898 (专家六级) | 2016-02-23 09:48
0

问题中有错误

字段1 字段2
a 北京
a 上海
b 北京

a到底对应北京还是上海。估计你是一时手误。

那么正确的SQL应该是

Select TableA.F1, TableA.F2, TableB.F3 from TableA

left outer join TableB

on TableA.F1=TableB.F1

这是基本的左连接,一般情况下任何一本数据库入门的书籍都会提及,建议题主买本书看看。

然后再发挥聪明才智。

 

爱编程的大叔 | 园豆:30844 (高人七级) | 2016-02-23 09:49

谢谢,已用分组排序解决问题

支持(0) 反对(0) 浩轩 | 园豆:157 (初学一级) | 2016-02-24 08:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册