SQL想实现两个表的数据整合

vb123m 2018-01-04 03:25:41
希望得到表3那样的结果:
表1 表2
ID name num ID name unit
1 张三 96 1 张三 磅
2 李四 98 2 王五 公斤
3 赵六 90 3 刘一 磅
4 陈二 86 4 赵六 磅
表3
ID name num unit
1 张三 96 磅
2 李四 98
3 赵六 90 磅
4 陈二 86

通过name锁定 哪些在表2有 然后对应的再放到表三 现在表3和表1是一样的
...全文
633 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Bichum 2018-01-08
  • 打赏
  • 举报
回复
这个不是表一表二左连接用姓名关联一下就可以了么
小野马1209 2018-01-04
  • 打赏
  • 举报
回复
1楼的查询就可以了 2楼通过创建视图,是虚拟的表,也是可以的 主要看你实际的业务需求,为什么要3表 ,正常我们通过关联查询就好
二月十六 2018-01-04
  • 打赏
  • 举报
回复
--测试数据
if not object_id(N'Tempdb..#T1') is null
drop table #T1
Go
Create table #T1([ID] int,[name] nvarchar(22),[num] int)
Insert #T1
select 1,N'张三',96 union all
select 2,N'李四',98 union all
select 3,N'赵六',90 union all
select 4,N'陈二',86
GO
if not object_id(N'Tempdb..#T2') is null
drop table #T2
Go
Create table #T2([ID] int,[name] nvarchar(22),[unit] nvarchar(22))
Insert #T2
select 1,N'张三',N'磅' union all
select 2,N'王五',N'公斤' union all
select 3,N'刘一',N'磅' union all
select 4,N'赵六',N'磅'
Go
--测试数据结束
SELECT #T1.* ,
#T2.unit
FROM #T1
LEFT JOIN #T2 ON #T2.name = #T1.name


吉普赛的歌 2018-01-04
  • 打赏
  • 举报
回复
--不需要表3, 表3是多余的,要维护一个多余的表是非常麻烦的
CREATE VIEW view_3
AS
SELECT 
	t1.id
	,t1.[name]
	,t1.num
	,t1.unit
FROM t1 INNER JOIN t2
	ON t1.id=t2.id  --t1.[name]=t2.[name]  你的要求是用 name, 但一般用主键 id 更合适
听雨停了 2018-01-04
  • 打赏
  • 举报
回复

select a.*,b.unit from 表1 a
left join 表2  b on a.name=b.name

590

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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