mysql - verzwicktes join

anmae

Erfahrenes Mitglied
hallo,

ich habe 2 Tabellen:
tbl_kd_bsttb mit den Elementen Datum, Preis, KID
tbl_kd_kdtb mit den Elementen KID, Mail

ich möchte nun eine Abfrage nach der EMail der leute, die seit einem bestimmten Zeitraum keine Bestellung mehr hatten. Dabei soll das Ergebniss aber nur Einträge enthalten, die irgendwann schon einmal eine Bestellung hatten, nur halt seit dieser bestimmten Zeit nicht.

Ich habe einen solchen ungetesteten Ansatz:
"SELECT tbl_kd_kdtb.Mail FROM tbl_kd_kdtb INNER JOIN tbl_kd_bsttb ON (tbl_kd_bsttb.KID = tbl_kd_kdtb.KID) WHERE bl_kd_bsttb.Datum >= '...' AND COUNT(bl_kd_bsttb.KID) = 0" ... und jetzt noch das es schonmal eine Bestellung vor dem Zeitraum gab.

Kann mir da jemand helfen?
 
ich habe eine Idee, eigendlich müsste es doch so gehen:

WHERE MAX(bl_kd_bsttb.Datum) <= '...' AND Max(bl_kd_bsttb.Datum)!=0

stimmt des?
 
ähm, frage: Warum fragst du uns das bevor du es selbst getestet hast? Sinn? Wenns klappt haste keinen fehler, wenns nicht klappt haste wenigstens n fehler mit dem man auch arbeiten kann^^

auf jedenfall seh ich da in der Abfrage kein aktuelles Datum minus n-Tage ablauffrist, sondern nur das Datum zu dem zeitpunkt wo bestellt wurde...

btw, ich weiss gar nicht ob es sinn macht eine derart komplizierte abfrage zu machen... Ist es nicht simpler und auch ressourcenschonender, wenn man bestimmte daten aus der DB abfragt und diese dann per PHP miteinander vergleicht und auswertet?
 
ähm, frage: Warum fragst du uns das bevor du es selbst getestet hast? Sinn?
Ja, sorry - hätte ich auch gefragt. Ich habe aber keinen Schreibzugriff auf die Datenbank und die ist bis heute noch lehr - also habe ich keine Daten zum Testen

auf jedenfall seh ich da in der Abfrage kein aktuelles Datum minus n-Tage ablauffrist, sondern nur das Datum zu dem zeitpunkt wo bestellt wurde...
Genau, ich habe das Datum einer Bestellung. Und nun möchte ich alle EMail Adressen der Kunden, welche seit - sagen wir mal 3 Monaten - keine Bestellungen hatten, aber die irgendwann schon mal bestellt hatten (also keine Neukunden mehr sind)

btw, ich weiss gar nicht ob es sinn macht eine derart komplizierte abfrage zu machen... Ist es nicht simpler und auch ressourcenschonender, wenn man bestimmte daten aus der DB abfragt und diese dann per PHP miteinander vergleicht und auswertet?
Wahrscheinlich wird nichts anderes übrig bleiben. Wenn ich aber in einer Schleife zusätzlich für jede gefundene EMail noch eine Datenbankabfrage starten muß, wird das ganze viel langsamer als wenn die Datenbank mir nur ein Ergebniss liefert und ich dieses durchgehe. Ich möchte halt so wenig Datenbankabfragen wie möglich.
 
Zurück