首頁 > 資料庫 > mysql教程 > SQL 連線和聯合如何協助檢索和合併多個表中的資料?

SQL 連線和聯合如何協助檢索和合併多個表中的資料?

Mary-Kate Olsen
發布: 2025-01-24 01:59:07
原創
810 人瀏覽過

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

掌握 SQL 連接和聯合以實現高效資料檢索

本指南探討 SQL 連接和聯合如何有效地檢索和組合多個表中的資料。

第 1 部分:了解聯接和並集

SQL 連線是基於共用資料列跨多個資料表檢索資料的基礎。 存在多種連接類型:

  • INNER JOIN: 僅傳回兩個表中聯結條件的資料列相符的行。
  • 外部聯結(左/右): 傳回一個指定表(左或右)中的所有行以及另一個指定表中的符合行。 如果不存在匹配項,則為不匹配的表的列傳回 NULL 值。
  • INTERSECT(如果支援): 僅傳回所有連接列中具有相同值的行。 注意:並非所有資料庫系統都直接支援 INTERSECT 運算子。

SQL 合併合併多個 SELECT 語句的結果,預設消除重複行。 使用 UNION ALL 保留重複項。

範例:

讓我們用涉及 carsmodelscolors 表的範例來示範。

範例 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)和四輪驅動車(型號 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板