select a.id,a.pname,b.cname from 人员表 a left join 国籍表 b on a.COUNTRY_ID=b.id
如果更新表的话,会出现错误,原因是你的字段类型不一样~这里仅给你一条语句,参考用~update 人员表 set COUNTRY_ID=b.cname from 人员表 a left join 国籍表 b on a.COUNTRY_ID=b.id
--建立环境 Create Table COUNTRY(C_ID int,CNAME varchar(20)) Create Table PELPEO(P_ID int,PNAME varchar(20),C_ID int,COUNTRY_Name varchar(20))Insert INTO COUNTRY(C_ID,CNAME) Select '1','中国' UNION ALL Select '2','韩国' UNION ALL Select '3','朝鲜'Insert INTO PELPEO(P_ID,PNAME,C_ID) Select '1','张三','1' UNION ALL Select '2','李四','1' UNION ALL Select '3','金则珠','2' UNION ALL Select '4','安真焕','2'GO--测试环境 --设置更新 UPDATE PELPEO SET PELPEO.COUNTRY_Name=COUNTRY.CNAME FROM PELPEO INNER JOIN COUNTRY ON PELPEO.C_ID =COUNTRY.C_ID Select * From COUNTRY Select * From PELPEOGO --删除环境 Drop Table COUNTRY Drop Table PELPEO GO
谢谢itblog(BegCSharp)了 你那个left join是什么意思啊 ?
Left join是外联结即取得Left join前面那张表关联字段的所有信息
update a set a.country_id = b.cname from 表2 a inner join 表1 b on a.country_id = b.id但是要保证表2的字段country_id和表1的字段cname的类型及长度‘兼容’
Create Table COUNTRY(C_ID int,CNAME varchar(20))
Create Table PELPEO(P_ID int,PNAME varchar(20),C_ID int,COUNTRY_Name varchar(20))Insert INTO COUNTRY(C_ID,CNAME)
Select '1','中国' UNION ALL
Select '2','韩国' UNION ALL
Select '3','朝鲜'Insert INTO PELPEO(P_ID,PNAME,C_ID)
Select '1','张三','1' UNION ALL
Select '2','李四','1' UNION ALL
Select '3','金则珠','2' UNION ALL
Select '4','安真焕','2'GO--测试环境
--设置更新
UPDATE PELPEO SET PELPEO.COUNTRY_Name=COUNTRY.CNAME
FROM PELPEO INNER JOIN COUNTRY ON PELPEO.C_ID =COUNTRY.C_ID Select * From COUNTRY
Select * From PELPEOGO
--删除环境
Drop Table COUNTRY
Drop Table PELPEO
GO
你那个left join是什么意思啊 ?
set a.country_id = b.cname
from 表2 a inner join
表1 b on a.country_id = b.id但是要保证表2的字段country_id和表1的字段cname的类型及长度‘兼容’