Zwei Tabellen gleichzeitg abfragen

suntrop

Erfahrenes Mitglied
Hallo,

ich habe zwei Tabellen, in der ersten steht u.a. eine E-Mail Adresse sowie ein Datum als MySQL timestamp und in der zweiten steht, ob der Nutzer schon bearbeitet und exportiert wurde.

Jetzt will ich alle E-Mail Adresse auslesen die nicht älter als 1 Monat sind und noch nicht bearbeitet und noch nicht exportiert sind.

In etwa:
Code:
SELECT id, email, date_entered FROM tabelle1 WHERE date_entered < 30 Tage 
UND
SELECT tabelle1_id, status, is_exported FROM tabelle2 where is_exported = 0 AND status = 2
… jetzt würde mir allerdings nicht die Verbindung von Tabelle 1 zu Tabelle 2 fehlen.

Ich gerate immer mehr durcheinander, je mehr ich darüber nachdenke. Im Moment bin ich völlig Ratlos und weiß auch nicht so recht wie ich es besser erklären soll.

Ich hoffe ihr versteht was ich meine und habt ein paar Tipps für mich.
 
Hi

Mhh hab mal was dran rumgeschrieben(nicht getestet) so in etwa sollte es aussehen.
Wenn ich dich richtig verstanden habe :rolleyes:

Code:
SELECT t1.id, t1.email, t1.date_entered, t2.tabelle1_id, t2.status, t2.is_exported FROM tabelle2 t2 
LEFT JOIN tabelle1 t1 ON(t2.tabelle1_id=t1.id) 
WHERE t2.is_exported = 0 AND t2.status = 2
AND t1.date_entered < 30;
 
Hallo HuRaHoRRe,

vielen Dank für deine schnelle Hilfe.

Der Code-Schnipsel funktioniert einwandfrei. Sieht ganz schön komplex aus - ich wusste gar nicht zu was SQL alles fähig ist :-) Hatte schon befürchtet es muss eine 100-Zeilen Funktion her.

Einzig das mit dem Datum, das geht so glaube ich nicht. "< 30" war nur mein Hinweis ;)

Habe es jetzt anders gelöst. Statt dynamisch "Heute" minus "30 Tage" zu rechnen, baue ich noch ein zusätzliches Formular ein, in dem man Jahr und Monat auswählen muss.

Oder kann ich mit SQL doch irgendwie mit folgendem String "2008-05-09 09:47:18" rechnen?


Nochmals danke für den Code!

Grüße
suntrop
 
PHP:
$minus_30 = date('Y-m-d H:i:s', strtotime('-30 days', time())); // Aktuelles Datum minus 30 Tage
Diese Variable dann hier einbauen:
PHP:
AND t1.date_entered < 30;
 
Um das Datum habe ich mich auch nicht wirklich gekümmert, aber Loomes hat dies ja jetzt erledigt ;)

Freut mich das ich helfen konnte.
 
danke Loomes für die Funktion mit dem Datum. Sieht verhältnismäßig komplex aus. Das nehm ich mir mal unter die Lupe, um es zu verstehen.


Grüße
suntrop
 
Zurück