php - mysql - 按 id 分组结果并打印
问题描述
我有包含列数的“预订”表(mySql):res_id、hotel_id、hotel_name、from_date、to_date。
我想为每家酒店选择并打印 html 表(我正在使用 PHP)。结果应该是一个标题——酒店的名称,下面是特定酒店的预订列表。
我可以按以下方式分组:
Select * FROM reservation GROUP BY hotel_id
我不确定这是否是正确的方法,如果hotel_id 已更改,我如何打印结果而不一直检查?
谢谢先进
解决方案
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
,您甚至可以获得无需预订的酒店。