Ben şöyle bilgi sunmak için tabloları bir dizi kullanılabilirlik kılavuz oluşturmak için çalışılıyor:php/mysql - sendika sorguları ile veri bir ızgara oluşturma?
Ben gibi bir sorgu kullanarak Seçilen tarih dönemi için kayıt kümesi oluşturabilir her mekan için------------------------------------------------------
venue | 22/11 | 23/11 | 24/11 | 25/11 | 26/11 |
------------------------------------------------------
Some venue | £24 | £25 | £32 | N/A | £65 |
------------------------------------------------------
Some venue | £20 | N/A | £22 | £34 | £43 |
-------------------------------------------------------
:
SELECT temp_date.queryDate, availability.venueId
FROM temp_date
LEFT JOIN availability
ON temp_date.queryDate = availability.date
AND availability.venueId = 7
GROUP BY temp_date.queryDate
ORDER BY temp_date.queryDate;
burada anahtar günlerdir doğru sayıda (yani. bir çalışma haftası için 5 kayıt) benim recordset tutarken kullanılamaz herhangi tarihlerde boş bir değer olabilir olmanın.
şöyle birine ben veri setlerini birleştirmek için bir UNION sorgusu kullanılarak basitçe düşündüğünü bu listeye başka yerleri her eklemek için:
(SELECT temp_date.queryDate, availability.venueId
FROM temp_date
LEFT JOIN availability
ON temp_date.queryDate = availability.date
AND availability.venueId = 7
GROUP BY temp_date.queryDate
ORDER BY temp_date.queryDate)
UNION
(SELECT temp_date.queryDate, availability.venueId
FROM temp_date
LEFT JOIN availability
ON temp_date.queryDate = availability.date
AND availability.venueId = 8
GROUP BY temp_date.queryDate
ORDER BY temp_date.queryDate);
10 farklı mekânları demek olan bu ile Benim endişe olabilir sorgulanmak sonra sorguyu çalıştırmak için oldukça uzun bir zaman alabilir.
Sorunuz şu şekildedir: Bir UNION sorgusu burada tek seçeneğim mi yoksa sorgulanan tüm mekanlar için tam hafta sonuçları almamızı sağlamak için kullanabileceğim bir alternatif JOIN var mı?
Umarım bu açık: -S
DÜZENLEME:
: Aşağıda gerekli kayıt kümesi ekran görüntüleri ve güncel sorgu olduktan sonra
ben olduğum şey belirtmek için
IN() kullanımı şu şekilde önerilir:
Bunun için teşekkürler, yakında bir oyun oynayacağım.Ve hayır, (tarih, kimlik) yinelenen kullanılabilirlik üzerinde mümkün değildir. – simnom
@simnom: "GROUP BY" 'den kurtulursunuz, o zaman gereksizdir. – Quassnoi
Bu parlak bir şekilde çalıştı. Teşekkür ederim. – simnom