Andreas Korthaus: MySql-Abfragen als Tabelle zwischenspeichern

Beitrag lesen

Aber die Frage ist ob Du das wirklich brauchst?! Wofür brauchst Du das genau? Meistens geht das auch ohne temporäre Tabellen!

wir hatten das Problem vor 2 Tagen schonmal mit der Inkonsistenzabfrage... jaja, man darf Inkonsistenzen nicht einplanen, ok.

Aber ich habe da ein Beispiel mit dem Fahrradverleih genannt - es ist komplizierter, als ich in Erinnerung hatte:
es gibt eine Tabelle für die Daten der Räder (Marke, Typ, Anschaffungspreis, id usw.)
und eine Tabelle 'Ausleihdaten' (Ausleiher, ausleihdatum, rückgabedatum, Rad-id). In dieser Tabelle stehen auch vorbestellte Räder - z.B. 27.9.2002-29.9.2002.

jetzt kommt jemand und will wissen: "welche Räder sind am 28.9.2002 noch frei?"

SELECT  t1.id AS id,
    FORM Räder AS t1
    LEFT JOIN Ausleihdaten AS t2
        ON t1.id = t2.Rad-id
    WHERE t2.ausleihdatum > $wunschtermin
        OR t2.rückgabedatum < $wunschtermin
    GROUP BY t1.id;

Das ist noch nicht ganz fertig, da ich nicht testen kann, und mich nicht gut genug auskenne. So fragst Du nur alle ab, die in der Ausleih-Tabelle stehen, was noch fehlt sind die die noch nicht da drin stehen, aber das geht auch irgendwie, aber das weiß ich jetzt leider nicht so genau, ich weiß aber das es geht. Du müßtest in der Where Bedingung noch die neuen Fahrräder mitnehmen, vielleicht sollte man das mit "HEAVING" kombinieren. Vielleicht hilft schin ein einfaches
"OR ISNULL t2.ausleihdatum", ich weiß es leider nicht.

Vielleicht hilft Dur ja: http://www.little-idiot.de/mysql/mysql-117.html

Grüße
Andreas