表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语句要怎么写?
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
谢谢,已用分组排序解决问题
返回的表3是不是数据不全?
问题中有错误
字段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
这是基本的左连接,一般情况下任何一本数据库入门的书籍都会提及,建议题主买本书看看。
然后再发挥聪明才智。
谢谢,已用分组排序解决问题