Maison >base de données >tutoriel mysql >Jointure gauche, droite ou interne : quel type de jointure SQL dois-je utiliser ?
Détermination du type de jointure approprié : gauche, droite ou interne
Dans les opérations de manipulation de données, la sélection du type de jointure correct entre les tables est cruciale pour récupérer les résultats souhaités. Les jointures gauche, droite et interne offrent des comportements distincts, et sélectionner celle qui convient à une situation spécifique peut s'avérer difficile. Clarifions les différences et vous aidons à déterminer quelle jointure utiliser :
Jointure interne
Jointure gauche
Jointure à droite
Exemple
Considérez l'exemple de requête fourni :
SELECT count(ImageId) as [IndividualRemaining], userMaster.empName AS ID#, CONVERT(DATETIME, folderDetails.folderName, 101) AS FolderDate, batchDetails.batchName AS Batch#, Client=@ClientName, TotalInloaded = IsNull(@TotalInloaded,0), PendingUnassigned = @PendingUnassigned, InloadedAssigned = IsNull(@TotalAssigned,0), TotalProcessed = @TotalProcessed, Remaining = @Remaining FROM batchDetails Left JOIN folderDetails ON batchDetails.folderId = folderDetails.folderId Left JOIN imageDetails ON batchDetails.batchId = imageDetails.batchId Left JOIN userMaster ON imageDetails.assignedToUser = userMaster.userId WHERE folderDetails.ClientId =@ClientID and verifyflag='n' and folderDetails.FolderName IN (SELECT convert(VARCHAR,Value) FROM dbo.Split(@Output,',')) and userMaster.empName <> 'unused' GROUP BY userMaster.empName, folderDetails.folderName, batchDetails.batchName Order BY folderDetails.Foldername asc
Dans cette requête, une jointure gauche est utilisée entre batchDetails et FolderDetails, et une jointure gauche est également utilisée entre batchDetails et imageDetails. Cela indique que nous souhaitons renvoyer toutes les lignes de batchDetails, même s'il n'y a aucune ligne correspondante dans FolderDetails ou imageDetails. Les lignes correspondantes de dossierDetails et imageDetails seront incluses si disponibles, sinon les valeurs NULL seront renvoyées.
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!