ホームページ >データベース >mysql チュートリアル >左結合、右結合、または内部結合: どの SQL 結合タイプを使用する必要がありますか?
適切な結合タイプの決定: 左、右、または内部
データ操作操作では、テーブル間の正しい結合タイプを選択することが重要です目的の結果を取得します。左結合、右結合、および内部結合は異なる動作を提供するため、特定の状況に適切なものを選択するのは困難な場合があります。違いを明確にし、どの結合を使用するかを決定するのに役立てましょう。
内部結合
Left Join
右結合
例
サンプル クエリを考えてみましょう提供:
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
このクエリでは、batchDetails とfolderDetails の間で左結合が使用され、batchDetails と imageDetails の間でも左結合が使用されます。これは、folderDetails または imageDetails に一致する行がない場合でも、batchDetails からすべての行を返したいことを示します。利用可能な場合は、folderDetails と imageDetails の一致する行が含まれます。そうでない場合は、NULL 値が返されます。
以上が左結合、右結合、または内部結合: どの SQL 結合タイプを使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。