如何在MySQL 中多次連接同一個表
當您需要在一個表中多次關聯同一個表中的記錄時查詢時,MySQL 提供了將表格與其自身連接的能力。這允許您從同一表的不同行檢索數據,從而有效地在行之間建立新的關係。
為了說明這個概念,請考慮以下場景:
您有兩個表格: 「網域」和「評論」。 「domains」表格儲存域 ID 和域名,而「reviews」表包含寄件者 (rev_dom_from) 和收件者 (rev_dom_for) 的評論資料和引用域名。
您的任務是顯示兩者網頁上的網域名稱。雖然您可以使用標準 LEFT JOIN 輕鬆顯示一個域名,但出現了問題:如何從“rev_dom_from”列中檢索第二個域名?
解決方案在於利用多個聯結。透過多次加入「domains」表,可以在評論和對應的網域之間建立不同的關係:
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
在此查詢中:
透過為連接表新增別名,您可以區分兩個實例並擷取所需的資料。這種多次連接同一個表的技術通常稱為“自連接”,可以應用於需要在單一表中建立多個關係的各種場景。
以上是如何在 MySQL 中自連接表以檢索多行資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!