Ich habe 3 Tabellen in der Datenbank wie dieseinnerhalb Abfrage mit Union Abfrageergebnis zurück
Tabelle availability
availability_id | date | price | room_id | closed
-------------------------------------------------------
1 | 2017-01-24 | 75 | 8 | 0
2 | 2017-01-24 | 95 | 9 | 0
3 | 2017-01-25 | 80 | 73 | 0
4 | 2017-01-25 | 70 | 65 | 0
5 | 2017-01-26 | 85 | 42 | 0
6 | 2017-01-26 | 65 | 21 | 0
Tabelle offer_day
plan_id | offer_id date | price | room_id | | closed
------------------------------------------------------------
1 | 12 | 2017-01-24 | 70 | 8 | 0
2 | 23 | 2017-01-24 | 75 | 9 | 0
3 | 12 | 2017-01-25 | 70 | 8 | 1
3 | 14 | 2017-01-25 | 70 | 8 | 0
4 | 34 | 2017-01-25 | 75 | 9 | 0
5 | 43 | 2017-01-25 | 80 | 73 | 0
6 | 54 | 2017-01-25 | 85 | 65 | 0
7 | 65 | 2017-01-26 | 75 | 42 | 0
8 | 44 | 2017-01-26 | 70 | 21 | 0
Tabelle package_day
package_id | date | price | room_id | closed
--------------------------------------------------
1 | 2017-01-24 | 120 | 8 | 0
2 | 2017-01-24 | 125 | 9 | 0
3 | 2017-01-25 | 135 | 73 | 0
4 | 2017-01-25 | 130 | 65 | 0
5 | 2017-01-26 | 125 | 42 | 0
5 | 2017-01-26 | 120 | 21 | 0
Ich habe Abfrage wie folgt:
SELECT a.price
FROM availability a
WHERE a.closed = 0 AND a.date >= '2017-01-24' AND a.date <= DATE_SUB('2017-01-26', INTERVAL 1 DAY)
UNION
SELECT 0.price
FROM offer_day o
WHERE o.closed = 0 AND o.date >= '2017-01-24' AND o.date <= DATE_SUB('2017-01-26', INTERVAL 1 DAY)
UNION
SELECT p.price
FROM package_day p
WHERE p.closed = 0 AND p.date >= '2017-01-24' AND p.date <= DATE_SUB('2017-01-26', INTERVAL 1 DAY)
Wenn ich diese Abfrage ausführen, werde ich alle Zeilen erhalten, die closed = 0
. Wie Sie in der Tabelle offer_day
sehen können, gibt es in der Spalte closed
den Wert 1.
Ich will nicht das Ergebnis zeigen, wenn Zeilen in Spalte close
in derselben room_id
und gleichen offer_id
Wert enthalten 1.
Beispiel, Sie in der Tabelle sehen können offer_day
dass room_id
8 zwei Tage, ‚2017- 01-24 'und' 2017-01-25 'und zwei offer_id
12 und 14, die in Datum' 2017-01-25 'hat 1 in closed
und in 8. Ich möchte nicht zeigen, dass room_id
8 und offer_id
12 wenn überhaupt Zeilen enthalten Wert 1
Wie kann ich das tun?
Vielen Dank.
Sie haben eine Bedingung -> x.closed = 0, mit dieser in Ihrer Abfrage erhalten Sie alle Datensätze, die geschlossen haben = 0 –
ya ich weiß, dass. Aber ich möchte, dass in Datumsbereich, den ich eingegeben, wenn es Wert 1 in Spalte geschlossen ist, ich möchte nicht alle Datensätze anzeigen @RafaelShkembi – Antonio
Was ist das Problem mit Ihrer Abfrage? Was ist die Ausgabe? Welche Ausgabe erwarten Sie? – shmosel