Qu'est-ce que l'auto-inscription et quand l'utiliseriez-vous ? Je ne comprends pas l'adhésion de soi donc une explication profane avec un exemple serait géniale.
Réponses
Trop de publicités?Vous utilisez une auto-inscription lorsqu'une table fait référence à des données en soi.
Par exemple, une table Employee
peut avoir une colonne SupervisorID
qui pointe vers l'employé qui est le patron de l'employé actuel.
Pour interroger les données et obtenir des informations pour les deux personnes dans une rangée, vous pouvez vous joindre comme suit :
select e1.EmployeeID,
e1.FirstName,
e1.LastName,
e1.SupervisorID,
e2.FirstName as SupervisorFirstName,
e2.LastName as SupervisorLastName
from Employee e1
left outer join Employee e2 on e1.SupervisorID = e2.EmployeeID
Eh bien, un exemple classique est où vous vouliez obtenir une liste des employés et de leurs gestionnaires immédiats :
select e.employee as employee, b.employee as boss
from emptable e, emptable b
where e.manager_id = b.empolyee_id
order by 1
Il est essentiellement utilisé là où il y a une relation entre les lignes stockées dans la même table.
- employés.
- marketing multi-niveaux.
- pièces de machines.
Et ainsi de suite...
Vous utiliseriez une auto-inscription sur une table qui « se réfère » à elle-même - par exemple une table d'employés où managerid est une clé étrangère pour employeeid sur cette même table.
Exemple :
SELECT E.name, ME.name AS manager
FROM dbo.Employees E
LEFT JOIN dbo.Employees ME
ON ME.employeeid = E.managerid