同一个表上的多个select语句?

时间:2013-03-13 01:42:47

标签: sql sql-server-2008 tsql join

我很难做出这个多重选择语句。

这是我选择*的例子。在reportsto列中,它是另一个Employee的ID。 我希望在此列中显示此emplyee的名字和姓氏

empID   FName  LName ReportsTo
1         te    xxxx     6
6         aaa   asfa     1
5         zzz   xxxx     6
4         ttt   asfa     1




this how i want to display it on my gridview
empID   FName  LName ReportsTo
1         te    xxxx     aaa asfa      
6         aaa   asfa     te xxxx
5         zzz   xxxx     te xxxx
4         ttt   asfa     aaa asfa

先谢谢

2 个答案:

答案 0 :(得分:2)

您需要自己加入表格才能获取用户报告的名称。以下查询使用INNER JOIN,它会显示值为reportsTo的所有用户。但是,如果某个列reportsTo nullable 并且您想要显示所有用户,请改用LEFT JOIN

SELECT  a.*,
        b.Fname TO_Fname,
        b.LName TO_F_NAME
FROM    emp a
        INNER JOIN emp b
            ON a.reportsTo = b.empID

要进一步了解联接,请访问以下链接:

如果要连接两列,

SELECT  a.*,
        b.Fname + ' ' + b.LName Report_TO_Name
FROM    emp a
        INNER JOIN emp b
            ON a.reportsTo = b.empID

答案 1 :(得分:0)

如果你有Null报告,你可以使用“Left Join”而不是“Inner Join”

选择C.empID,C.FName,C.LName,T.FName +''+ T.LName Report_TO_Name 来自emp C左连接emp T on(c.reportsTo = T.empID)