>데이터 베이스 >MySQL 튜토리얼 >SQL 조인 및 유니온을 사용하여 여러 테이블에서 데이터를 효율적으로 검색하려면 어떻게 해야 합니까?

SQL 조인 및 유니온을 사용하여 여러 테이블에서 데이터를 효율적으로 검색하려면 어떻게 해야 합니까?

Barbara Streisand
Barbara Streisand원래의
2025-01-24 01:37:12935검색

How Can I Efficiently Retrieve Data from Multiple Tables Using SQL Joins and Unions?

여러 테이블의 데이터를 반환하는 SQL 쿼리

조인 및 유니온

  • 내부 조인: 공통 열을 기준으로 두 테이블의 행을 결합하여 일치하는 행만 반환합니다. (자세한 내용은 Wikipedia 참조)
  • Union: 여러 쿼리의 결과를 결합하지만 중복 행을 제거합니다.
  • Left Outer Join: 포함 왼쪽 테이블의 모든 행과 오른쪽 테이블의 일치하는 행, 오른쪽 테이블의 일치하지 않는 행은 생략 table.
  • 오른쪽 외부 조인: 오른쪽 테이블의 모든 행과 왼쪽 테이블의 일치하는 행을 포함하지만 왼쪽 테이블의 일치하지 않는 행은 생략합니다.
  • 교차: 여러 테이블에서 동일한 행만 반환합니다. (일부 데이터베이스에서는 지원되지 않음)

내부 조인: "cars" 및 "models"에서 데이터 검색 테이블:

SELECT
    c.ID,
    m.model
FROM
    cars c
INNER JOIN
    models m
ON
    c.model = m.ID

Union: 두 쿼리의 결과를 결합하여 모든 스포츠카와 4WD를 가져옵니다.

SELECT
    c.ID,
    m.model
FROM
    cars c
INNER JOIN
    models m
ON
    c.model = m.ID
WHERE
    m.ID = 1
UNION
SELECT
    c.ID,
    m.model
FROM
    cars c
INNER JOIN
    models m
ON
    c.model = m.ID
WHERE
    m.ID = 3

왼쪽 외부 조인: 브랜드가 없는 브랜드를 포함하여 모든 브랜드와 해당 차량 수를 찾아보세요. cars:

SELECT
    b.brand,
    COUNT(c.id) AS countOfBrand
FROM
    brands b
LEFT OUTER JOIN
    cars c
ON
    b.ID = c.brand
GROUP BY
    b.brand

Intersects: "colors" 및 "models" 테이블 전체에서 동일한 행만 검색:

SELECT
    m.model,
    c.color
FROM
    models m
INNER JOIN
    colors c
ON
    m.ID = c.ID
WHERE
    m.model = 'Sports' AND c.color = 'Red'

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

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