Andreas Korthaus: SQL-Fachman benötigt: sehr komplizierte SQL-Abfrage

Beitrag lesen

Hi!

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...
und nicht nur das: wenn Fahrrad xyz vorher verliehen war und zurückgegeben wurde erscheint es auch, obwohl es zum Wunschtermin schon wieder verplant sein kann.

Nein, das nicht, durch group by hast Du nur eine Angabe Pro Rad, und durch die WHERE-bedingung werden bereits alle Datensätze entfernt, die zu dem Zeitpunkt nicht zu Verfügung stehen. Jetzt hast Du alle Räder die schonmal ausgeliehen waren oder für einen anderen zeiptunkt vorgemerkt sind. Was noch feht sind die Räder die noch nie ausgeliehen waren und auch noch nicht vorgemerkt sind. Ich bin 100% isg sicher das  irgendwie geht, mußt ein bisschen mit MAX(), WHERE, GROUP BY und HAVING rumspielen, dazu kenne ich mich aber nicht genug aus ohen das testen zu können. Sonst schick mir mal die Dumps der Tabellen dann probiere ich mal ein wenig!

vielen Dank für Deine Mühe, aber glaub mir: das haben schon mehrere Leute durchgekaut - und sogar unser Master-Brain aus meinem Lehrgang, der wirklich _alles_ konnte (und alles besser als alle Dozenten, abi:1.0 einschließlich Mathe-leistungskurs)

hatte ich auch  fast ;-)

ist auf keine andere Lösung gekommen, als die, die ich vorgestellt habe (was zwar nicht heißt daß es die nicht geben kann, aber der Erfahrung mit ihm nach ist es sehr unwahrscheinlich ,-).

Ich denk hier im Forum gibt es einige die das wissen, vor allem 2 Damen die darin sehr fähig sind!

also meine Frage an alle bleibt:
kann man Abfrageergebnisse als Tabellen zwischenspeichern? und wie? - die Links zu de.mysql.com konnte ich leider noch nicht auswerten, weil ich hier nur begrenzt internet-Zugang habe und zu hause testen muß, dafür habe ich mir das Manual runtergeladen, konnte es aber leider zuhause nicht öffnen...

1. kann ich das nicht so gut und kurz erklären wie es im Manual steht,
2. habe ich nicht so viel Zeit. Du wirst Dir doch mal kurz ein paar Links angucken können, das ist wirklichgut erklärt udn zumindest das mit den temporären Tabellen sollte damit geklärt sein!

Grüße
Andreas