[MySQL] Wie muss eine SubQuery geschrieben werden?

Romsl

Erfahrenes Mitglied
Hi,

wie kann ich folgende SubQuery bei MySQL verwenden?

Code:
SELECT reservierungen_2.`ZID`
FROM reservierungen_1, reservierungen_2
WHERE reservierungen_1.`ReID` = reservierungen_2.`ReID` AND reservierungen_2.`ZID` NOT IN (SELECT reservierungen_2.`ZID`
                                                                                           FROM reservierungen_1, reservierungen_2
                                                                                           WHERE reservierungen_1.`ReID` = reservierungen_2.`ReID` AND
                                                                                                 ((reservierungen_1.`Anreise-Datum` >= '2004-8-01' AND reservierungen_1.`Abreise-Datum` <= '2004-8-31') OR
                                                                                                  (reservierungen_1.`Anreise-Datum` <= '2004-8-01' AND reservierungen_1.`Abreise-Datum` > '2004-8-01') OR
                                                                                                 ((reservierungen_1.`Anreise-Datum` >= '2004-8-01' AND reservierungen_1.`Abreise-Datum` > '2004-8-01') AND
                                                                                                  (reservierungen_1.`Anreise-Datum` <= '2004-8-31' AND reservierungen_1.`Abreise-Datum` > '2004-8-01'))))
Danke

Romsl
 
Ich habe MySQL 4.1 installiert. Aber diese Anfrage funktioniert nicht.

Hab ich da noch einen Fehler?

Danke für eure Hilfe
 
Hi,

ich habs und so in etwa siehts aus

Code:
DROP TABLE tempTable;

CREATE TEMPORARY TABLE `tempTable` (
SELECT reservierungen_2.`ZID`
FROM reservierungen_1, reservierungen_2
WHERE reservierungen_1.`ReID` = reservierungen_2.`ReID` AND
      ((reservierungen_1.`Anreise-Datum` >= '2004-8-01' AND reservierungen_1.`Abreise-Datum` <= '2004-8-12') OR
       (reservierungen_1.`Anreise-Datum` <= '2004-8-01' AND reservierungen_1.`Abreise-Datum` > '2004-8-01') OR
      ((reservierungen_1.`Anreise-Datum` >= '2004-8-01' AND reservierungen_1.`Abreise-Datum` > '2004-8-01') AND
       (reservierungen_1.`Anreise-Datum` <= '2004-8-12' AND reservierungen_1.`Abreise-Datum` > '2004-8-01')))
ORDER BY reservierungen_2.`ZID`);

SELECT zimmer.`ZID`
FROM zimmer LEFT JOIN tempTable ON zimmer.`ZID` = tempTable.`ZID`
WHERE tempTable.`ZID` IS NULL;

Gruß

Romsl
 

Neue Beiträge

Zurück