首頁 >資料庫 >mysql教程 >如何在 SQL 中使用逗號分隔的連線欄位連接表?

如何在 SQL 中使用逗號分隔的連線欄位連接表?

Barbara Streisand
Barbara Streisand原創
2024-11-12 07:41:01337瀏覽

How to Join Tables with Comma-Separated Join Fields in SQL?

使用逗號分隔的連接欄位連接表

使用包含逗號分隔清單的表時,使用傳統方法執行連接變得具有挑戰性方法。在本例中,我們遇到兩個表,“categories”和“movies”,其中“movies”表中的“categories”列保存多個用逗號分隔的類別 ID。

實作檢索對應的類別名稱而不是「類別」欄位中的原始ID,我們可以利用以下SQL 查詢:

select
    m.id,
    group_concat(c.name)
from
    movies m
    join categories c on find_in_set(c.id, m.categories)
group by
    m.id

此查詢使用find_in_set() 函數來決定「類別」中是否指定了類別ID 「類別」表存在於「m.categories」欄位中儲存的逗號分隔清單中。透過根據「m.categories」值迭代檢查「categories」表中的每個候選類別,查詢可以識別匹配的類別。

然後使用 group_concat() 函數將符合的類別名稱聚合到一個陣列中,將它們連接成結果集中每一行的單一字串欄位。最後,查詢以「m.id」列將結果分組,確保每個電影 ID 在輸出中僅出現一次。

因此,此查詢有效地取代了「movies」表與對應的類別名稱,有效地對具有非傳統連接欄位的表執行連接操作。

以上是如何在 SQL 中使用逗號分隔的連線欄位連接表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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