求两个表连接的Sql语句 ! 邹健请进!!!

wg168 2004-12-08 11:29:25
表一

id name
1 a
2 b


表二

id code
1 ss
3 dd

查询结果
id name code
1 a ss
2 b
3 dd
...全文
90 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jilate 2004-12-08
  • 打赏
  • 举报
回复
zjcxc(邹建) 的方法是对的,其他人的,都错
zjcxc 元老 2004-12-08
  • 打赏
  • 举报
回复
--测试

--测试数据
create table 表一(id int,name varchar(10))
insert 表一 select 1,'a'
union all select 2,'b'

create table 表二(id int,code varchar(10))
insert 表二 select 1,'ss'
union all select 3,'dd'
go

--方法1
select id,name=max(name),code=max(code)
from(
select id,name,code='' from 表一
union all
select id,name='',code from 表二
)a group by id

--方法2
select id=isnull(a.id,b.id),name=isnull(a.name,''),code=isnull(b.code,'')
from 表一 a full join 表二 b on a.id=b.id
order by id
go

--删除测试
drop table 表一,表二

/*--测试结果

id name code
----------- ---------- ----------
1 a ss
2 b
3 dd

(所影响的行数为 3 行)

id name code
----------- ---------- ----------
1 a ss
2 b
3 dd

(所影响的行数为 3 行)
--*/
zjcxc 元老 2004-12-08
  • 打赏
  • 举报
回复
--或:
select id=isnull(a.id,b.id),name=isnull(a.name,''),code=isnull(b.code,'')
from 表一 a full join 表二 b on a.id=b.id
flashasp 2004-12-08
  • 打赏
  • 举报
回复
select a.id,a.name,b.code
from 表一 a
full join 表二 b
on a.id=b.id
zjcxc 元老 2004-12-08
  • 打赏
  • 举报
回复
select id,name=max(name),code=max(code)
from(
select id,name,code='' from 表一
union all
select id,name='',code from 表二
)a group by id
qizhanfeng 2004-12-08
  • 打赏
  • 举报
回复
select a.id,a.name,b.code
from 表一 a
full join 表二 b
on a.id=b.id
frankwong 2004-12-08
  • 打赏
  • 举报
回复
select a.id,a.name,b.code
from 表一 a
full join 表二 b
on a.id=b.id

34,591

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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