Ich bin versucht, ein Raster der Verfügbarkeit von einer Anzahl von Tabellen zu erstellen, um Informationen zu präsentieren, wie folgt:Erstellen eines Gitters von Daten mit PHP/MySQL - Union Abfragen?
------------------------------------------------------
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 |
-------------------------------------------------------
Für jeden Veranstaltungsort ich ein Re-Cord für das ausgewählte Datum Zeit unter Verwendung einer Abfrage erstellen können, wie:
Der Schlüssel hier ist, dass ich einen Nullwert für alle Daten, die nicht verfügbar sind, während mein Recordset auf die richtige Anzahl von Tagen (dh. 5 Einträge für eine Arbeitswoche) zurückgeben kann.
Zu jedem der Veranstaltungsorte zu dieser Liste hinzufügen Ich war einfach eine UNION-Abfrage mit Berücksichtigung der Datensätze in einer wie so kombinieren:
(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);
mit diesem Meine Sorge ist, sagen mit 10 verschiedenen Orten das könnte abgefragt werden, könnte die Abfrage ziemlich lange dauern.
Also meine Frage ist wie folgt: Ist eine UNION-Abfrage meine einzige Option hier oder gibt es eine alternative JOIN, die ich verwenden kann, um sicherzustellen, dass ich eine volle Woche Ergebnisse für alle Orte, die abgefragt werden.
Hoffentlich ist klar: -S
EDIT:
Um anzuzeigen, was ich unten nach Screenshots von dem Re-Cord erforderlich und aktuelle Abfrage sind:
Verwendung von IN() wie vorgeschlagen:
danke dafür werde ich in Kürze ein Stück haben.Und nein, (Datum, ID) Duplikate sind bei Verfügbarkeit nicht möglich. – simnom
@simnom: Sie können "GROUP BY" loswerden, dann ist es überflüssig. – Quassnoi
Das hat hervorragend funktioniert. Vielen Dank. – simnom