0

没有经验的mysql用户在这里:)

我有 2 张桌子

一个持有用户创建的事件列表。它还对事件进行了描述。

另一个表保存事件的日期。它还具有事件的唯一 ID。一个事件可以有多个与之关联的日期。

我的问题:

我希望返回一个包含事件和描述的列表。现在我为此使用 for each 循环。

例子:

[loop]
    $list .= '<tr><td>$date</td><td>$description</td><tr>';
[/loop]

return $list;

现在我需要显示与一个事件具有相同日期但结合描述的事件

例子:

$list .= '
    <tr>
        <td>two-events-with-same-dates-here-but-shown-as-one</td>
        <td>$description 1<br />$description 2</td>
    </tr>
    ';
return $list;

所以我的想法是按日期分组并使用新查询为每个组运行一个循环,并将描述组合成一个描述。

在循环中运行新查询对我来说听起来是错误的和低效的,我认为 mysql 有一些类似这样的智能内置函数。

想法?

4

1 回答 1

1

按日期对结果进行排序,然后在php中添加<br/>,直到日期发生变化?

另一种解决方案是使用 group_concat。例子:

select date, group_concat(description SEPARATOR '<br/>')
from events
group by date

这将导致

'2012-01-01' | 'description1<br/> description2'
于 2012-09-23T18:07:48.103 回答