>데이터 베이스 >MySQL 튜토리얼 >SQL 조인과 유니온은 어떻게 여러 테이블에서 데이터를 검색하고 결합하는 데 도움이 됩니까?

SQL 조인과 유니온은 어떻게 여러 테이블에서 데이터를 검색하고 결합하는 데 도움이 됩니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2025-01-24 01:59:07814검색

How Can SQL Joins and Unions Help Retrieve and Combine Data from Multiple Tables?

효율적인 데이터 검색을 위한 SQL 조인 및 유니온 마스터하기

이 가이드에서는 SQL 조인 및 유니온이 여러 테이블의 데이터를 효과적으로 검색하고 결합하는 방법을 살펴봅니다.

1부: 조인과 유니온 이해

SQL 조인은 공유 열을 기반으로 여러 테이블에서 데이터를 검색하는 데 기본입니다. 여러 가지 조인 유형이 있습니다.

  • INNER JOIN: 두 테이블 모두에서 조인 조건의 열이 일치하는 행만 반환합니다.
  • OUTER JOIN(LEFT/RIGHT): 지정된 테이블(왼쪽 또는 오른쪽)의 모든 행과 다른 테이블의 일치하는 행을 반환합니다. 일치하는 항목이 없으면 일치하지 않는 테이블의 열에 대해 NULL 값이 반환됩니다.
  • INTERSECT(지원되는 경우): 조인된 모든 열에서 동일한 값을 가진 행만 반환합니다. 참고: 모든 데이터베이스 시스템이 INTERSECT 연산자를 직접 지원하는 것은 아닙니다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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