首頁 > 資料庫 > mysql教程 > 如何在 MySQL 查詢中兩次加入同一個表?

如何在 MySQL 查詢中兩次加入同一個表?

DDD
發布: 2024-12-18 09:50:12
原創
743 人瀏覽過

How Can I Join the Same Table Twice in a MySQL Query?

在 MySQL 中兩次連接同一個表

MySQL 的連接操作允許您基於公共鍵合併多個表中的行。在某些情況下,可能需要將表與其自身連接兩次。此技術通常用於在查詢結果中顯示同一表中的多個欄位。

用例

考慮一個包含兩個表的資料庫:域和評論。域表包含域 ID (dom_id) 和網域名稱 (dom_url)。評論表包含評論中涉及的「from」和「to」域的域 ID(rev_dom_from、rev_dom_to)。

要顯示每個評論的兩個域名,需要兩次加入域表.

查詢結構

要實現此目的,請對每個所需的連接使用LEFT JOIN。在此範例中,為清楚起見,將網域表別名為 toD 和 fromD。

SELECT toD.dom_url AS ToURL,
       fromD.dom_url AS FromUrl,
       rvw.*
FROM reviews AS rvw
LEFT JOIN domain AS toD
    ON toD.dom_id = rvw.rev_dom_for
LEFT JOIN domain AS fromD
    ON fromD.dom_id = rvw.rev_dom_from;
登入後複製

說明

  • 表選擇: 查詢首先從以下位置選擇行評論表,別名為「rvw」。
  • 左第一個JOIN: 第一個LEFT JOIN 根據「To」域ID (toD.dom_id = rvw.rev_dom_for) 將網域表(別名為toD)連接到評論表。
  • 第二個LEFT JOIN: 第二個LEFT JOIN 第二次引入域表(別名fromD) 並根據「From」域ID (fromD.dom_id = rvw.rev_dom_from)將其連接到Reviews 表。
  • SELECT 子句: SELECT 子句指定查詢應將 toD 別名中的 dom_url 欄位傳回為 ToURL,將 fromD 別名中的 dom_url 欄位傳回為 FromUrl。它還包括結果中評論表中的所有欄位 (rvw.*)。

以上是如何在 MySQL 查詢中兩次加入同一個表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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