想请教一个问题,
有用户表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以内)效率都差不多
但是在数据量大点时, 用连接查询的效率,好像会高些。