gpt4 book ai didi

php - 按事件对数据库中的项目进行分组

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

我的数据库中有三个表:reservationseventsusers。我想显示订阅某个事件的所有用户。这些表通过以下方法链接:


SELECT users.u_name, events.e_id, events.e_title
FROM users
INNER JOIN reservations
ON reservations.r_s_id = users.u_id
INNER JOIN events
ON reservations.r_event_id = events.e_id

我需要加入预订表,因为字段 reservations.r_s_id 与用户的唯一 ID (users.u_id) 相关,然后字段 reservations.r_event_id 与事件的唯一 ID (events.e_id) 相关。这是我能想出的唯一方法来接近所有必要的值。

我的目标是获得如下所示的输出,但不知道如何实现这一目标

Event 1 - user 1 - user 3 - user 9Event 2 - User 2 - User 5 - User 12

我尝试在 events.e_title 上使用 GROUP_CONCAT()GROUP BY 但这并没有达到我想要的效果

有什么想法吗?

最佳答案

从预订中选择,根据events.e_id 对结果集进行排序,并在每次事件发生变化时打印一个新标题。

像这样:

$SQL = "SELECT users.u_name, events.e_id, events.e_title
FROM reservations
INNER JOIN events
ON reservations.r_event_id = events.e_id
INNER JOIN users
ON reservations.r_s_id = users.u_id
ORDER BY events.e_id";

$res = mysql_query($SQL);

$last_event = NULL;

while ($row = mysql_fetch_assoc($res)) {

// check if curser moved to new event
if (!$last_event || $last_event <> $row['e_id']) {

// output heading for event
echo $row['e_title'], '<br />', PHP_EOL;

// remember ID of current event
$last_event = $row['e_id'];
}

// output attendee
echo '- ', $row['u_name'], '<br />', PHP_EOL;
}

关于php - 按事件对数据库中的项目进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9772267/

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