gpt4 book ai didi

database - MySQL - 从另一个表收集相关行

转载 作者:行者123 更新时间:2023-11-29 06:19:37 25 4
gpt4 key购买 nike

我有三个表,如下:

users
---------------
id
etc...

badges
---------------
id
title
etc...

badges_data
---------------
badge_id
user_id

我想要做的是选择一组大约 100 名用户,并获取他们拥有的所有徽章,并将它们显示在各自的用户旁边。

解决这个问题的最佳方法是什么?

最佳答案

 select 
users.*,
group_concat(badges.id, '=', badges.title separator ';') as badges_info
from users
left join badges_data on badges_data.user_id=users.id
inner join badges on badges.id=badges_data.badge_id
group by users.id
limit 100;

上面将返回类似的数据

 user.*, 
badges_id=title;badges_id=title; ...

如果您认为group_concat返回的格式难以阅读/解析

 select 
users.*,
badges.*
from users
left join badges_data on badges_data.user_id=users.id
inner join badges on badges.id=badges_data.badge_id

如果用户有多个徽章,这将为同一用户返回多行

关于database - MySQL - 从另一个表收集相关行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4536298/

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