Heim >Datenbank >MySQL-Tutorial >Linker, rechter oder innerer Join: Welchen SQL-Join-Typ sollte ich verwenden?
Bestimmen des geeigneten Verbindungstyps: Links, rechts oder innen
Bei Datenmanipulationsvorgängen ist die Auswahl des richtigen Verbindungstyps zwischen Tabellen von entscheidender Bedeutung um die gewünschten Ergebnisse abzurufen. Linke, rechte und innere Verbindungen bieten unterschiedliche Verhaltensweisen, und die Auswahl des geeigneten für eine bestimmte Situation kann eine Herausforderung sein. Lassen Sie uns die Unterschiede klären und Ihnen helfen, zu bestimmen, welcher Join verwendet werden soll:
Inner Join
Left Join
Rechter Join
Beispiel
Betrachten Sie die bereitgestellte Beispielabfrage:
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
In dieser Abfrage wird ein Links-Join zwischen „batchDetails“ und verwendet FolderDetails, und ein Links-Join wird auch zwischen BatchDetails und ImageDetails verwendet. Dies zeigt an, dass wir alle Zeilen von „batchDetails“ zurückgeben möchten, auch wenn es in „folderDetails“ oder „imageDetails“ keine passenden Zeilen gibt. Übereinstimmende Zeilen aus „folderDetails“ und „imageDetails“ werden einbezogen, sofern verfügbar, andernfalls werden NULL-Werte zurückgegeben.
Das obige ist der detaillierte Inhalt vonLinker, rechter oder innerer Join: Welchen SQL-Join-Typ sollte ich verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!