日期:2014-05-19  浏览次数:20372 次

SQL语句?
有2个表:T_Project和T_User。
        T_User有2个字段:
        f1:用户ID
        f2:用户名
        T_Project有3个字段:
        f0:   项目名称
        f1:项目负责人的用户ID
        f2:项目承办人的用户ID
        希望用SELECT   语句返回T_Project表的数据集里,将T_Project.f1、T_Project.f2分别替换为T_User.f2。
        如果只替换一个,例如T_Project.f1,可以用下面的SQL语句实现:
        SELECT   FROM   T_Project.f0,T_User.f2   T_Project  
        INNER   JOIN     T_User       ON   T_Project.f1=T_User.f1
        如果同时替换两个,SQL语句?


------解决方案--------------------
Select
A.f0,
B.f2 As 项目负责人,
C.f2 As 项目承办人
From
T_Project A
Inner Join
T_User B
On A.f1 = B.f1
Inner Join
T_User C
On A.f2 = C.f1
------解决方案--------------------
子查询
SELECT f0,f1=(SELECT T_User.f2 FROM T_User WHERE T_User.f1=T_Project.f1 ),
f2=(SELECT T_User.f2 FROM T_User WHERE T_User.f1=T_Project.f2 ) FROM T_Project
------解决方案--------------------
试试看
SELECT a.f0,
case a.f1 when b.f1 then b.f2 end a.f1,
case a.f2 when b.f1 then b.f2 end a.f2,
from T_Project a,T_User b
order by a.f0