首頁 >資料庫 >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 查詢

聯接與並集

聯接: 基於公用列組合兩個表中的行,僅傳回符合的行。 (有關更多信息,請參閱維基百科)

並集: 組合多個查詢的結果,但刪除重複的行。

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

左外連接: 包括左表中的所有行以及右表中的匹配行,但忽略右表中不匹配的行表。

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
右外連接:

包含右表中的所有行和左表中的符合行,但忽略左表中不符合的行。

Intersect:
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
僅傳回多個表中相同的行。 (並非所有資料庫都支援)

範例
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'
內連接:從「汽車」和「模型」擷取資料表:並集:合併兩個查詢的結果以獲得所有跑車和4WD:左外連接: 尋找所有品牌及其汽車數量,包括沒有任何品牌的品牌cars:相交:僅檢索「顏色」和「型號」表中相同的行:

以上是如何使用 SQL 連接和聯合有效地從多個表中檢索資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn