表中的一列是另外一表的ID,现在想实现这样一个查询:直接显示另一表中的文字信息,请看?
如题目:
表fullss
姓名 生日 单位id 所在地id
张三 1967.6 2 5
李四 1956.8 3 6
另一表 danwei
单位id 单位名称
2 大有公司
3 联想电脑公司
另一表 addesss
所在地id 所在地名称
5 上海
6 北京
现在想要得到的查询结果是
姓名 生日 单位 所在地
张三 1967.6 大有公司 上海
李四 1956.8 联想电脑公司 北京
要如何写sql才能达到这样的效果,请教谢谢
------解决方案----------------------测试
declare @fullss table(姓名 varchar(10), 生日 varchar(10), 单位id int, 所在地id int)
insert @fullss
select '张三 ', '1967.6 ',2,5 union all
select '李四 ', '1956.8 ',3,6
declare @danwei table(单位id int, 单位名称 varchar(100))
insert @danwei
select 2, '大有公司 ' union all
select 3, '联想电脑公司 '
declare @addesss table(所在地id int, 所在地名称 varchar(10))
insert @addesss
select 5, '上海 ' union all
select 6, '北京 '
select a.姓名, a.生日, 单位=b.单位名称, 所在地=c.所在地名称
from @fullss a
join @danwei b
on a.单位id=b.单位id
join @addesss c
on a.所在地id=c.所在地id
/*
姓名 生日 单位 所在地
张三 1967.6 大有公司 上海
李四 1956.8 联想电脑公司 北京
*/
------解决方案--------------------手哆嗦了。
select 姓名,生日 ,单位,所在地 from fullss ,danwei,addesss where fullss.单位id=danwei.id and 所在地.id=addesss.id
------解决方案-------------------- select 姓名 , 生日, 单位, 所在地
from fullss a ,danwei b,addesss c
where a.单位id=b.单位id and b.所在地id=c.所在地id
------解决方案--------------------简单,用连接表就可以了