簡體   English   中英

連接兩個表並顯示第二個表行數據,用單個查詢的第一個表行用逗號分隔

[英]Joining two tables and display second table row data comma seperated for first table rows using single query

我需要在與另一個表連接的同時從一個表輸出行數據,並且第二個表中的列數據應通過單個查詢的每個第一表行用逗號分隔。 如果第二個表中沒有匹配的行,則不應在輸出中。 以下是表格。

users table
╔══════════╦═════════════════╗
║ user_id  ║    username     ║
╠══════════╬═════════════════╣
║ 1        ║ abc             ║
║ 2        ║ def             ║
║ 3        ║ ghi             ║
║ 4        ║ jkl             ║
╚══════════╩═════════════════╝

users_friends table
╔══════════╦═════════════════╗
║ user_id  ║    friend_id    ║
╠══════════╬═════════════════╣
║ 1        ║ 1               ║
║ 1        ║ 2               ║
║ 1        ║ 3               ║
║ 2        ║ 1               ║
║ 2        ║ 3               ║
║ 3        ║ 4               ║
╚══════════╩═════════════════╝

我希望輸出如下。

╔══════════╦═════════════════╗═════════════════╗
║ user_id  ║    user_name    ║       friends   ║
╠══════════╬═════════════════╣═════════════════╣
║ 1        ║ abc             ║  1,2,3          ║
║ 2        ║ def             ║  1,3            ║
║ 3        ║ ghi             ║  4              ║
╚══════════╩═════════════════╝═════════════════╝

我嘗試查詢如下。 但是它重復數據。 但這是行不通的。

$sql= "SELECT user_id, user_name, friend_id FROM users INNER JOIN users_friends ON users.user_id= friends.user_id"

使用MySQL GROUP_CONCAT()函數:

SELECT u.user_id, u.user_name, GROUP_CONCAT(uf.friend_id)
FROM users u INNER JOIN users_friends uf ON u.user_id = uf.user_id
GROUP BY user_id, user_name

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM