>데이터 베이스 >MySQL 튜토리얼 >왼쪽, 오른쪽 또는 내부 조인: 어떤 SQL 조인 유형을 사용해야 합니까?

왼쪽, 오른쪽 또는 내부 조인: 어떤 SQL 조인 유형을 사용해야 합니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-28 22:36:12978검색

Left, Right, or Inner Join: Which SQL Join Type Should I Use?

적절한 조인 유형 결정: 왼쪽, 오른쪽 또는 내부

데이터 조작 작업에서는 테이블 간에 올바른 조인 유형을 선택하는 것이 중요합니다. 원하는 결과를 검색합니다. 왼쪽, 오른쪽 및 내부 조인은 서로 다른 동작을 제공하므로 특정 상황에 적합한 조인을 선택하는 것이 어려울 수 있습니다. 차이점을 명확히 하고 어떤 조인을 사용할지 결정하는 데 도움을 드리고자 합니다.

내부 조인

  • 조인된 두 테이블 모두에서 일치하는 값이 있는 행을 반환합니다.
  • 두 테이블 모두에서 일치하는 값이 없는 행을 제외합니다.
  • 모든 행이 두 테이블 모두 결과에 표시됩니다.

Left Join

  • 일치하는 값이 있는지 여부에 관계없이 왼쪽 테이블의 모든 행을 반환합니다.
  • 다음과 같은 경우 오른쪽 테이블에서 일치하는 행을 포함합니다. 존재합니다.
  • 왼쪽 테이블 행에 대해 오른쪽 테이블에 일치하는 값이 없으면 오른쪽 테이블 열에 대해 NULL 값을 반환합니다.

Right Join

  • 왼쪽에 일치하는 값이 있는지 여부에 관계없이 오른쪽 테이블의 모든 행을 반환합니다. table.
  • 왼쪽 테이블에 일치하는 행이 있으면 포함합니다.
  • 오른쪽 테이블 행에 대해 왼쪽 테이블에 일치하는 값이 없으면 왼쪽 테이블 열에 대해 NULL 값을 반환합니다. .

샘플 쿼리를 고려하세요. 제공됨:

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 사이에 Left 조인이 사용되며, BatchDetails와 ImageDetails 사이에도 Left 조인이 사용됩니다. 이는 폴더 세부 사항 또는 이미지 세부 사항에 일치하는 행이 없더라도 배치 세부 사항에서 모든 행을 반환하려고 함을 나타냅니다. 가능한 경우 FolderDetails 및 imageDetails의 일치하는 행이 포함되며, 그렇지 않은 경우 NULL 값이 반환됩니다.

위 내용은 왼쪽, 오른쪽 또는 내부 조인: 어떤 SQL 조인 유형을 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.