2015-12-07 88 views
0

我有兩個表cafedetailsemployeedetails連接兩個表在相同的條件下在SQL Server

  • cafedetails已列cafemanagerid和STAFFID是
  • employeedetails有列僱員,employeename

我想全部細節

cafemanagerid, name, staffid, name 

我的查詢:

select 
    cafemanagerid, employeename as cafemanagerName, 
    staffid, employeename as staffname 
from 
    cafedetails, employeedetails 
where 
    cafemanagerid = employeeid 
    and staffid = employeeid 

我不知道工作,但如何實現這一目標?

幫助我..

+4

[不良習慣踢:使用舊樣式的JOIN(http://sqlblog.com/blogs/aaron_bertrand/archive /2009/10/08/bad-habits-to-kick-using-old-style-joins.aspx) - 舊式*逗號分隔的表*樣式列表已替換爲* proper * ANSI'JOIN'語法在ANSI - ** 92 ** SQL標準(**超過20年**之前),並且不鼓勵使用它 –

回答

0

你需要加入employeedetails兩次,每次用不同的別名。 在這個例子中,我使用了一個完整的外部聯接來顯示數據是否匹配。可能出現的是其​​他不存在的情況。

SELECT 
    cd.cafemanagerid, 
    cafe.employeename AS cafemanagerName, 
    cd.staffid, 
    staf.employeename AS staffname 
FROM 
    cafedetails AS cd 
    FULL OUTER JOIN employeedetails AS cafe ON cd.cafemanagerid = cafe.employeeid 
    FULL OUTER JOIN employeedetails AS staf ON cd.staffid = staf.employeeid 

如果你想行,其中兩個只存在然後更改FULL OUTER JOININNER JOIN