首页 > 解决方案 > mysql - 按 id 分组结果并打印

问题描述

我有包含列数的“预订”表(mySql):res_id、hotel_id、hotel_name、from_date、to_date。

我想为每家酒店选择并打印 html 表(我正在使用 PHP)。结果应该是一个标题——酒店的名称,下面是特定酒店的预订列表。

我可以按以下方式分组:

Select * FROM reservation GROUP BY hotel_id

我不确定这是否是正确的方法,如果hotel_id 已更改,我如何打印结果而不一直检查?

谢谢先进

标签: phpmysqlsql

解决方案


GROUP BY绝对不是解决这个问题的正确方法。一种方法是:

SELECT *
FROM reservation
ORDER BY hotel_id;

然后,您将遍历结果集。当酒店名称更改时,您将输入酒店的名称。

注意:如果它同时具有酒店 ID 和名称,则这是一个糟糕的数据模型reservation。这通常是在hotel,您将使用以下方式连接表JOIN

SELECT h.hotel_name, r.*
FROM hotels h JOIN
     reservation r
     ON r.hotel_id = h.hotel_id
ORDER BY hotel_id;

使用 a LEFT JOIN,您甚至可以获得无需预订的酒店。


推荐阅读