mySQL Problem - suche freier Mietobjekte

Hallo!

Ich beschäftige mich gerade etwas tiefer mit SQL unter mySQL.

Folgende Anwendung möchte ich unter php realisieren:

Es gibt eine Zahl von Mietobjekten, wie z.B. eine Ferienwohnung oder ein Sportboot.
Hierfür habe ich eine Tabelle angelegt.

Diese Mietobjekte können gebucht werden, d.h. ich habe in einer zweiten Tabelle Einträge über den Mieter, das gemietete Objekt und den Zeitraum (Anfang, Ende).

Ich möchte jetzt für einen vorgegebenen Zeitraum eine Liste mit freien Mietobjekten generieren, d.h. also diejenigen Objekte, für die in einem definierten Zeitraum keine Buchungen vorliegen.

Ich verstehe soviel, dass hierfür eigentlich eine subquery notwendig wäre, muß aber mit mysql 3.22 auskommen, also ohne subqueries…

Mit subquery wäre mein Ansatz in etwa wie folgt:

select objekt.mietobjekte from mietobjekte where not exists ( select objekt.buchungen from buchungen where date_begin =’$stop’) or (date_begin >= ‚$start‘ and date_begin = ‚$start‘ and date_end

so aus dem Bauch: Insert in eine temporäre Table und dann diese mit eine right/left joinen.

HTH
Quaser

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Quaser!

Vielen Dank für die Antwort.
Frage dazu: Wenn ich diese Abfrage über eine php seite öffentlich mache, dann können theoretisch ja gleichzeitig mehrere User die abfrage starten. Müßte dann nicht jede temporäre tabelle einen eigenen bezeichner erhalten? kann ich den auf zufallsbasis generieren?

Gruß

segelfreak

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi
der Sinn einer temorären Tabelle ist es wirklich nur temporär zu sein.
Damit ist NICHT gemeint eine normale Tabelle anzulegen und hinterher wieder zu löschen.
Jedes einigermaßen guten Datenbank System kennt temporäre Tabellen. Dazu gehört unter anderem auch MySQL.
Temporäre Tabellen existieren nur innerhalb einer Session und gehören auch nur zu dieser Session. Beim Schliessen der Session werden solche Tabellen automatisch von der Datenbank gelöscht.
Erzeugt werden temporäre Tabellen in MySQL mit „CREATE TEMPORARY TABLE“

Soweit klar?

Gruss
Quaser

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]