Ben aşağıdaki gibi bilgileri sunmak için tabloları bir dizi durumu bir ızgara oluşturmak için çalışılıyor:
------------------------------------------------------
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 |
-------------------------------------------------------
Her mekan için ben gibi bir sorgu kullanarak Seçilen tarih dönemi için bir kayıt oluşturabilirsiniz:
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 ben gün doğru sayıda (bir çalışma haftası için yani 5 giriş) benim kayıt tutmak iken kullanılamaz herhangi bir tarih için bir null değeri dönebilirsiniz olmak.
Ben sadece bu gibi birine veri kümelerini birleştirmek için bir UNION sorgusu kullanılarak düşündüğünü bu listeye diğer mekanları 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);
Sorgu boyunca çalıştırmak için oldukça uzun bir zaman sürebilir sonra sorgulanabilir olabilir 10 farklı mekanda demek bu benim husustur.
Aşağıdaki gibi Yani benim soru: bir UNION sorgusu burada benim tek seçenek mi ya da orada bazı alternatif KATIL ben sorgulanan tüm mekanları için tam bir hafta sonuçları almanızı sağlamak için kullanabileceğiniz olduğunu.
Umarım bu açıktır:-S
EDIT:
Ben aşağıda neyin peşinde olduğumu göstermek için gerekli kayıt ve cari sorgusunun ekran vardır:
Using IN() as suggested: