집 >데이터 베이스 >MySQL 튜토리얼 >SQL 조인과 유니온은 어떻게 여러 테이블에서 데이터를 검색하고 결합하는 데 도움이 됩니까?
효율적인 데이터 검색을 위한 SQL 조인 및 유니온 마스터하기
이 가이드에서는 SQL 조인 및 유니온이 여러 테이블의 데이터를 효과적으로 검색하고 결합하는 방법을 살펴봅니다.
1부: 조인과 유니온 이해
SQL 조인은 공유 열을 기반으로 여러 테이블에서 데이터를 검색하는 데 기본입니다. 여러 가지 조인 유형이 있습니다.
SQL 공용체는 여러 SELECT
문의 결과를 결합하여 기본적으로 중복 행을 제거합니다. UNION ALL
을 사용하면 중복이 보존됩니다.
예시:
cars
, models
, colors
테이블의 예를 들어 보겠습니다.
예시 1: 내부 조인
스포츠 자동차의 ID를 검색하려면(model
ID 1이 스포츠카를 나타낸다고 가정):
<code class="language-sql">SELECT a.ID, b.model FROM cars a INNER JOIN models b ON a.model = b.ID WHERE b.ID = 1;</code>
자동차 색상을 추가하려면 또 다른 가입이 필요합니다.
<code class="language-sql">SELECT a.ID, b.model, c.color FROM cars a INNER JOIN models b ON a.model = b.ID INNER JOIN colors c ON a.color = c.ID WHERE b.ID = 1;</code>
예 2: 연합
스포츠카(모델 ID 1)와 4WD(모델 ID 3)를 결합하려면:
<code class="language-sql">SELECT a.ID, b.model, c.color FROM cars a INNER JOIN models b ON a.model = b.ID INNER JOIN colors c ON a.color = c.ID WHERE b.ID = 1 UNION SELECT a.ID, b.model, c.color FROM cars a INNER JOIN models b ON a.model = b.ID INNER JOIN colors c ON a.color = c.ID WHERE b.ID = 3;</code>
예 3: 외부 조인
자동차가 없는 브랜드를 포함하여 모든 브랜드와 자동차 수를 나열하려면(왼쪽 외부 조인 사용):
<code class="language-sql">SELECT a.brand, COUNT(b.id) AS countOfBrand FROM brands a LEFT OUTER JOIN cars b ON a.ID = b.brand GROUP BY a.brand;</code>
예 4: INTERSECT 시뮬레이션(MySQL)
INTERSECT
은 보편적으로 지원되지 않으므로 조인(MySQL용)을 사용하는 해결 방법은 다음과 같을 수 있습니다(이 예에서는 특정 테이블 구조와 원하는 교차 기준에 따라 조정이 필요함).
<code class="language-sql"> SELECT a.ID, a.color, a.paint FROM colors a INNER JOIN colors b ON a.ID = b.ID WHERE a.ID > 2 AND b.ID -- Replace with your actual intersection condition ``` (Note: This example is a placeholder and requires adaptation to a real-world scenario to be meaningful.) This demonstrates the power of joins and unions for efficient data manipulation in SQL. Remember to adapt these examples to your specific database schema and requirements.</code>
위 내용은 SQL 조인과 유니온은 어떻게 여러 테이블에서 데이터를 검색하고 결합하는 데 도움이 됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!