J'ai un problème pour obtenir ce sql statemen pour retourner ce que je veux: Je veux qu'il renvoie une liste de propriétés à la fois l'employé ou Job_Profile. Si l'un d'entre eux n'ont pas la propriété, il doit retourner NULL dans cette ligne/colonne Maintenant, le sql ressemble:instruction SQL JOIN et 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)
Le résultat est:
Analyse test 1 3 22
Et je voudrais que ce soit quelque chose comme ceci:
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
Je sais qu'il ya un problème quand je: - rejoindre Emp_Property - font la clause WHERE
J'ai essayé et utilisé LEFT OUTER JOIN à la place du droit JOIN et le résultat que je sors est le même est le même. J'ai aussi essayé de faire toutes les jointures FULL OUTER et de l'exécuter sans la clause where et je n'ai toujours pas les valeurs NULL attendues – Jorn