讓我們的經典自連接例如Employee表中,我們有列empId,managerId,empName,Managername
。我想看到,誰是經理,然後在表名稱另一名加盟經理的名字每一個員工。現在,我有問題的部分是,經理ID可以是空的一些記錄。在這些情況下,SQL不起作用,因爲mgr.name是空的,其有MGRID爲空行:SQL自聯接與空值的問題
SELECT emp.Name, mgr.Name FROM Employee e
LEFT JOIN Employee mgr ON e.empId=mgr.mgrId
JOIN Name nm ON nm.name = mgr.Name
是否有人可以提供一個解決方案?
對不起,這個問題過於簡單: 它更像每個員工行,我也想要mgr行(mgrId是empId的行),然後將mgr行的屬性連接到其他表。類似這樣的:
select
emp.empId,mgr.empId,dept.deptName
from Employee emp
JOIN Address addr on
emp.houseNo = addr.houseNo
JOIN dept dept on
dept.deptAddress = addr.deptAddress
LEFT JOIN Employee mgr on
emp.empId = mgr.empId
JOIN Address address on
mgr.houseNo = address.houseNo
JOIN dept department on
department.houseNo=address.deptAddress
where
department.deptId=dept.deptId
使用所有左連接對此不起作用。謝謝您的幫助。
在你大SQL這樣的:LEFT JOIN員工經理在emp.empId = mgr.empId看起來不正確。不應該是LEFT JOIN Employee mgr on emp.mgrId = mgr.empId – JBrooks 2011-02-02 04:38:42