gpt4 book ai didi

PHP/SQL 将查询结果分组到数组中

转载 作者:行者123 更新时间:2023-11-29 11:36:31 24 4
gpt4 key购买 nike

我正在开发一个特性租赁网站。

有关数据库对象/表关系的信息:

一个特性可以有多个单元(例如:酒店是一个特性,酒店客房是单元)。

每个单位都有不同时期(夏季、冬季等)的多个价格,在本例中我只想选择最高和最低价格。

OneProperty->ManyUnits->ManyPrices(仅查询中的最低和最高价格)

执行查询后,我希望以相同的方式得到一个数组,其中单元将按其属性进行分组,而不是每个单元都有一个属性。

property1->unit1->min_price
->max_price
->unit2->min_price
->max_price

property2->unit1->min_price
->max_price
->unit2->min_price
->max_price

而不是

property1->unit1->min_price
->max_price
property1->unit2->min_price
->max_price

property2->unit1->min_price
->max_price
property2->unit2->min_price
->max_price

什么是正确的查询(或者可能是查询)以及如何使用此信息按此顺序将结果存储到数组中?预先感谢您的帮助。

编辑:这是我在查询中使用的逻辑的简化示例:

SELECT 
property.id as pid,unit.id as uid, min(prices.price) as min_price, max(prices.price) as max_price
FROM unit
JOIN property
ON property.id = unit.property_id
JOIN prices
ON unit.id = prices.unit_id

最佳答案

如果您使用属性 ID 和单元 ID 作为数组键,您应该能够构建所需的多维数组,如下所示:

while ($row = $result->someFetchArrayMethod()) {
$result[$row['pid']][$row['uid']] = array(
'min_price' => $row['min_price'],
'max_price' => $row['max_price']);
}

关于PHP/SQL 将查询结果分组到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36487743/

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