gpt4 book ai didi

php - 连接两个表并使用单个查询显示第二个表行数据,以逗号分隔第一个表行

转载 作者:行者123 更新时间:2023-11-29 11:51:04 24 4
gpt4 key购买 nike

我需要在与另一个表连接时输出表中的行数据,并且第二个表中的列数据应该通过单个查询为每个第一个表行以逗号分隔。如果第二个表中没有匹配的行,则不应输出。以下是表格。

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

关于php - 连接两个表并使用单个查询显示第二个表行数据,以逗号分隔第一个表行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34058496/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com