2016-04-07 16 views
0

私はプロパティのレンタルのためのWebサイトで作業しています。データベースオブジェクト/テーブル関係についてPHP/SQLグループ化クエリの結果が配列

情報:

1つの特性は、複数のユニットを持つことができます(例:ホテルは、プロパティで、ホテルの部屋にはユニットです)。

各ユニットは、異なる期間(夏、冬など)の複数の価格を持っています。この場合、最高価格と最低価格のみを選択します。

OneProperty-> ManyUnits-> ManyPrices(クエリのみでminとmax価格)

私はクエリを実行した後、私はユニットがによってグループ化されるのと同じ方法で、配列、で終わるしたいですそれぞれのユニットに1つのプロパティを持たせるのではなく、そのプロパティを使用します。 INSTEAD

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

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

OF

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

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

何どのようにこの情報を使用してこの順に配列に結果/ sのを保存するための適切なクエリ(あるいはクエリ)とのだろうか?助けをありがとうございました。

EDIT: これは私がクエリで使用される論理回路の簡単化した例です。

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 
+0

まず、クエリと配列スクリプトを自分で作成し、それがうまくいかない場合は、それをSOに持ってきてください。 – larsAnders

+0

@ IarsAnders私は知っていますが、私は完全に失われており、SQLではそれほど良くありません。私は正しいロジックに到達できません。私がやることは、テーブルに参加して混乱することだけです。 – Bralemili

+0

正確に!混乱を起こす。トレンチに参加してください。 – larsAnders

答えて

1

あなたは配列のキーとしてプロパティIDとユニットIDを使用する場合は、「多次元配列にあなたを構築することができるはずです

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

これで解決します。私は今それを試し、あなたに知らせるでしょう。ありがとう – Bralemili

関連する問題