2016-04-07 19 views
0

Emlak sözleşmesi için web sitesinde çalışıyorum. veritabanı nesnesi/tablo ilişkileri hakkındaPHP/SQL Sorgu sonuçlarını dizine gruplandırma

Bilgi:

Bir özellik birden birimlerine sahip olabilirler (Örnek: Bir otel özelliktir ve otel odaları birimleridir).

Her ünite farklı dönemler için (yaz, kış vb.) Birden fazla fiyata sahiptir, bu durumda sadece maksimum ve minimum fiyatı seçmek istiyorum.

OneProperty-> ManyUnits-> ManyPrices (dk ve sadece sorguda maksimum fiyatı) ben sorgu yaptıktan sonra ben birimleri göre gruplandırılmış olacaktır aynı şekilde, bir dizide ile bitirmek istiyorum

Birimin her biri için bir mülk sahibi olmak yerine mülkleri. BUNUN YERİNE

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 

ne nasıl bu bilgi ile bu sırada bir diziye sonuç/s saklamak için uygun sorgu (ya da belki de sorgular) ve olurdu? Herhangi bir yardım için şimdiden teşekkür ederiz.

DÜZENLEME: budur ben sorgusunda kullanılan mantık basitleştirilmiş örnek: mülk kimliğini ve dizi tuşları olarak birim ID kullanıyorsanız

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

İlk önce, sorguyu ve dizi komut dosyasını kendiniz oluşturmaya çalışmalısınız ve eğer çalışmazsa, SO'ya getirin. – larsAnders

+0

@IarsAnders Biliyorum, ama tamamen kayboldum ve sql'de çok iyi değil. Doğru mantığa ulaşamıyorum. Yapmam gereken şey sadece masaya katılıp karışıklık yaratmak. – Bralemili

+0

tam olarak! Ortalığı birbirine katmak. Siperlerde bize katılın. – larsAnders

cevap

1

, sen çok boyutlu dizi oluşturmak gerekir Eğer' Bunun gibi yeniden:

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

Bu, bunu çözecektir. Şimdi deneyeceğim ve bilmeni istiyorum. Teşekkürler – Bralemili

İlgili konular