>데이터 베이스 >MySQL 튜토리얼 >데이터 결합을 위해 ID를 사용하여 4개의 SQL 테이블을 효율적으로 조인하려면 어떻게 해야 합니까?

데이터 결합을 위해 ID를 사용하여 4개의 SQL 테이블을 효율적으로 조인하려면 어떻게 해야 합니까?

DDD
DDD원래의
2025-01-14 07:07:42791검색

How Can I Efficiently Join Four SQL Tables Using IDs to Combine Data?

ID를 사용하여 여러 SQL 테이블을 효율적으로 조인

여러 SQL 테이블을 조인하는 것은 데이터 통합 ​​및 분석의 기본 작업입니다. 테이블에 일치하는 값이 있는 열이 있는 경우 ID를 사용하여 이를 조인하고 여러 데이터 소스에서 데이터를 검색할 수 있습니다.

다음 열 구조를 갖는 TableA, TableB, TableC, TableD의 4개 테이블이 있다고 가정합니다.

  • 테이블A: aID(기본 키), nameA, dID
  • 테이블B: bID(기본 키), nameB, cID, aID
  • 테이블C: cID(기본 키), nameC, 날짜
  • 테이블D: dID(기본 키), 이름D

이러한 테이블을 조인하여 데이터를 추출하고 결합하려고 합니다. 각각의 ID를 사용하여 TableA, TableB 및 TableC에 성공적으로 조인했습니다.

<code class="language-sql">SELECT TableA.*, TableB.*, TableC.*
FROM (TableB INNER JOIN TableA ON TableB.aID = TableA.aID)
INNER JOIN TableC ON (TableB.cID = TableC.cID)
WHERE DATE(TableC.date) = DATE(NOW())</code>

그런데 TableD를 연결에 추가하려고 하면 "TableD"가 인식되지 않아 오류가 발생합니다.

이 문제를 해결하려면 TableD를 포함하는 다른 연결을 추가해야 합니다. 올바른 쿼리는 다음과 같습니다.

<code class="language-sql">SELECT TableA.*, TableB.*, TableC.*, TableD.*
FROM TableA
JOIN TableB ON TableB.aID = TableA.aID
JOIN TableC ON TableC.cID = TableB.cID
JOIN TableD ON TableD.dID = TableA.dID
WHERE DATE(TableC.date) = DATE(NOW())</code>

이 쿼리는 TableA부터 시작하여 일치하는 ID를 기준으로 다른 테이블을 순서대로 조인하는 4개의 테이블 조인을 수행합니다. 이를 통해 네 개의 테이블 모두에서 데이터를 검색하고 이를 단일 결과 세트로 결합할 수 있습니다.

위 내용은 데이터 결합을 위해 ID를 사용하여 4개의 SQL 테이블을 효율적으로 조인하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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