Comment utiliser l'auto-rejoindre dans SQL?
Une jointure automatique est utilisée pour rejoindre un tableau avec lui-même, généralement pour une analyse hiérarchique, séquentielle ou comparative dans le même tableau. 1. Utilisez une adhésion à vous-même lorsque vous traitez des données hiérarchiques comme les employés et les gestionnaires. 2. Appliquez-le pour comparer les lignes dans le même tableau, comme trouver des employés dans le même département. 3. Utilisez des alias de table pour traiter le tableau comme deux entités distinctes. 4. Utilisez les types de jointures appropriées - Rejoing à gauche pour inclure les lignes inégalées, jointure intérieure pour uniquement des paires correspondantes. 5. Empêcher les doublons ou l'auto-apparition en ajoutant des conditions comme e1.emp_id Une adhésion à SQL est utilisée lorsque vous souhaitez rejoindre un tableau avec lui-même. Ceci est particulièrement utile pour comparer les lignes dans le même tableau, telles que les données hiérarchiques (comme les employés et leurs gestionnaires), les données séquentielles (comme les journaux ou les séries chronologiques), ou la recherche de relations entre des enregistrements similaires. Vous utilisez généralement une adhésion auto-rejoindre lorsque: Étant donné qu'une table ne peut pas se joindre littéralement à elle-même, vous utilisez des alias de table pour traiter la même table que deux entités distinctes dans la requête. Disons que vous avez une table Ici, Pour obtenir une liste d'employés ainsi que les noms de leurs gestionnaires: Résultat: Pour trouver des paires d'employés qui travaillent dans le même département (mais qui ne sont pas la même personne): Résultat: Fondamentalement, une adhésion à vous permet de considérer une table comme deux vues distinctes des données. Une fois que vous avez compris l'utilisation d'alias et correspondant aux bonnes colonnes, il devient un outil puissant pour analyser les relations dans une seule table. Quand utiliser un auto-jointure
Syntaxe et exemple
employees
: employés
-------- ---------- ----------- -------------
| EMP_ID | Nom | Manager_id | Département |
-------- ---------- ----------- -------------
| 1 | Alice | NULL | Ingénierie |
| 2 | Bob | 1 | Ingénierie |
| 3 | Charlie | 1 | Ventes |
| 4 | Diana | 2 | Ingénierie |
-------- ---------- ----------- -------------
manager_id
fait référence à l' emp_id
d'un autre employé. SÉLECTIONNER
e.name comme employé_name,
m.name comme manager_name
DEPUIS
Employés E
Gauche jointer les employés m sur e.manager_id = M.emp_id;
Explication:
e
est un alias pour l'employé.m
est un alias pour le gestionnaire (même tableau).employees
à lui-même où le manager_id
dans la ligne des employés correspond à l' emp_id
dans la ligne du gestionnaire.LEFT JOIN
garantit que les employés sans managers (comme Alice) apparaissent toujours, avec NULL
en tant que directeur. --------------- ---------------
| Employee_name | Manager_name |
--------------- ---------------
| Alice | NULL |
| Bob | Alice |
| Charlie | Alice |
| Diana | Bob |
--------------- ---------------
Un autre exemple: trouver des employés dans le même département
SÉLECTIONNER
e1.name en tant qu'employé1,
E2.Name en tant qu'employé2,
E1.Département
DEPUIS
Employés E1
Inner Rejoignez les employés E2
Sur e1.department = e2.Department
Et e1.emp_id <e2.emp_id;
Notes:
e1
et e2
sont deux instances du même tableau.e1.emp_id < e2.emp_id
évite les paires en double (par exemple, Bob-Charlie et Charlie-Bob) et l'auto-paire. ----------- ----------- -------------
| Employé1 | Employee2 | Département |
----------- ----------- -------------
| Bob | Diana | Ingénierie |
| Alice | Bob | Ingénierie |
| Alice | Diana | Ingénierie |
----------- ----------- -------------
Points clés pour se souvenir
e
, m
) pour distinguer les deux instances de la table.
INNER JOIN
si vous voulez uniquement des enregistrements correspondants.LEFT JOIN
si vous voulez toutes les lignes de la première instance, même sans match.e1.id ).
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

TofindTheSumofacolumninsQL, fonction usethesum (), qui a détruit la thèse de l'allnumericvaliesInaspecifiedColumn WhipIgningNulls; 1.Usebasicsyntax: selectSum (Column_Name) AsaliasfromTable_name; 2.enSureThecolumnhasnumericdatatoElorDerearr

ThefirstdayoftheyEaS a obtenu la constatation de l'instructifation de la 1et-theguvenyear, et dethelastdayisdecember31stoftheSameyear, avec la révocation du système de databases.

Le contexte d'exécution SQL fait référence à l'identité ou au rôle lors de l'exécution des instructions SQL, qui déterminent les ressources et les autorisations de fonctionnement qui peuvent être accessibles. Le paramètre d'autorisation doit suivre le principe des autorisations minimales, et les autorisations courantes incluent la sélection, l'insertion, l'exécution, etc. Pour résoudre les problèmes d'autorisation, vous devez confirmer le nom de connexion, les autorisations de rôle, les paramètres d'exécution et l'autorisation de schéma. La réalisation de commutation de contexte peut être mise en œuvre via Executeas, mais l'attention doit être accordée à l'existence des utilisateurs, à l'octroi de l'autorisation et à l'impact de la sécurité des performances. Il est recommandé d'éviter d'attribuer arbitrairement les rôles DB_OWNER ou SYSADMIN. Le compte de demande ne doit accéder qu'aux objets nécessaires et être autorisés via le schéma.

Aself-joinisusedtocomparerowswithinthesametable,suchasinhierarchicaldatalikeemployee-managerrelationships,bytreatingthetableastwoseparateinstancesusingaliases,asdemonstratedwhenlistingemployeesalongsidetheirmanagers'nameswithaLEFTJOINtoincludetop-lev

ThealterTableStatementsUsesedTomodifyAnExistSingTable’sstructurewithoutrecreatingit; 1.AddanewColumnusingAddColumn; 2.Dropacolumn retireroPColumn, quialsodeletesitsdata; 3.RenameacolumnusingRenameColumn, withyntaxConsistentinmysql, sqlServer, andPostgreSql; 4

La syntaxe pour la création d'une vue est l'instruction CreateEviewView_NAMEASSELECT; 2. La vue ne stocke pas les données réelles, mais est basée sur les résultats de requête en temps réel de la table sous-jacente; 3. La vue peut être modifiée à l'aide de CreateOrReplaceView; 4. La vue peut être supprimée via DropView; 5. La vue convient pour simplifier les requêtes complexes, fournir un contrôle d'accès aux données et maintenir la cohérence de l'interface, mais l'attention doit être accordée aux performances et à la logique, et se termine enfin par une phrase complète.

AfulLouterJoinernsallRowsfrombothtables, avec un NulswherenomatchExists; 1) itcombinesMatchingRecordSandincludsUnsUrmatchedrowsfrombothleftandRightTables; 2)

TransformDatamodelsByembeddingorReferencingBasedOnAccessSpatternSinSteaDofusingJons; 2. Handletransactions byfavoringatomicoperations et la consommation évidente, réserve laMulti-DocumentTransactions
