当前位置: 代码迷 >> Sql Server >> 请问一个查询脚本的写法
  详细解决方案

请问一个查询脚本的写法

热度:92   发布时间:2016-04-24 08:56:17.0
请教一个查询脚本的写法
本帖最后由 hwhtj 于 2015-09-02 09:44:32 编辑
想请教一个问题,
有用户表A 字段userid,name
如1,张三
  2,李四
有业务表B 字段job,sjman,jsman
如jobAAAA,1,2
表b中的sjman,jsman均取自表A中的userID

请问:如何写查询脚本,得到这样的结果
jobAAAA,张三,李四

有个写法是,
select B.job,a.name,b.name from 
B left join A  as a on B.sjman=a.userid
B left join A  as b on B.jsman=b.userid

我就是因为不想写两次join才问的
------解决思路----------------------
SELECT * INTO #t FROM (
SELECT 1 id,'张' name
UNION ALL 
SELECT 2,'李'
) a
SELECT * FROM #t

SELECT * INTO #t2 FROM (
SELECT 'jobAAAA' job ,1 sjman1,2 sjman2) a
SELECT * FROM #t2

SELECT job,(select name FROM #t a WHERE a.id=b.sjman1) sj1,
(SELECT name FROM #t a WHERE a.id=b.sjman2) sj2
FROM #t2 b

------解决思路----------------------
子查询和连接两种方式, 

貌似在数据量不大的时候,(1w以内)效率都差不多

但是在数据量大点时, 用连接查询的效率,好像会高些。
  相关解决方案