134 votes

Qu'est-ce que L'AUTO-INSCRIPTION et quand l'utiliseriez-vous ?

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.

193voto

RedFilter Points 84190

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

76voto

paxdiablo Points 341644

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...

11voto

Michael Pakhantsov Points 11344

La jointure automatique SQL est simplement une jointure normale qui est utilisée pour joindre une table à elle-même.

Exemple :

Select *
FROM Table t1, Table t2
WHERE t1.Id = t2.ID

6voto

Will A Points 16763

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X