日期:2014-05-18  浏览次数:20490 次

表中的一列是另外一表的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
------解决方案--------------------
简单,用连接表就可以了