我有一个问题,让这个SQL状态返回我想要的: 我希望它返回一个属性列表的雇员或Job_Profile。如果其中一人不具备的特性,应该在该行返回NULL /列 现在的SQL是这样的:SQL JOIN和WHERE语句
SELECT Parameter.Patameter_Description ParamName,
Job_Profile.Title, Job_Property.Mark JobMark,
Emp_Property.Mark EmpMark,
Emp_Id--, (Employee.First_Name + ' ' + Employee.Last_Name) EmpName
FROM Job_Property
INNER JOIN Job_Profile ON Job_Profile.Title = Job_Property.Job_Title
INNER JOIN Parameter ON Job_Property.Parameter_Id = Parameter.Id
RIGHT JOIN Emp_Property ON Emp_Property.Parameter_Id = Job_Property.Parameter_Id
INNER JOIN Employee ON Emp_Property.Emp_Id = Employee.Enterprise_Staff_Id
WHERE Employee.Enterprise_Staff_Id = 22
AND Job_Profile.Title =
(SELECT
Employee.Job_Profile_Name
FROM Employee WHERE Employee.Enterprise_Staff_Id = 22)
结果是:
Analyse test 1 3 22
而且我想它是是这样的:
Analyse test 1 3 22
Data test 3 NULL NULL or 22
economic test 4 NULL NULL or 22
Service test 2 NULL NULL or 22
我知道有我一个问题: - 加入Emp_Property - 使WHERE语句
我尝试这样做,使用LEFT OUTER JOIN代替RIGHT JOIN,结果我得到了相同的是一样的。 我也尝试使所有的联接全部和运行它没有where子句,我仍然没有得到我期望的NULL值 – Jorn 2009-10-01 10:41:37