Probleme mit JOIN

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Probleme mit JOIN

    Hi,

    habe ein Problem mit (LEFT) JOIN.

    Undzwar habe ich eine Tabelle "emails" und eine Tabelle "emails_sent", in der ich einen Datensatz einfüge, sofern eine E-Mail versendet wurde.

    Die konkrete Struktur:

    emails: id, to, text, date
    emails_sent: id, emailId, date

    Jetzt habe ich Probleme mit dem Joinen bzw. mit der Bedingung. Wie bekomme ich alle Datensätze aus "emails", die noch nicht versendet wurden (sprich keinen Eintrag in der Tabelle "emails_sent" haben).

    Probiert habe ich folgendes:

    Code:
    SELECT * FROM emails LEFT JOIN emails_sent ON emails.id = emails_sent.emailId 
    WHERE emails_sent.emailId = NULL
    Könntet ihr mir bitte weiterhelfen?

  • #2
    Code:
    SELECT * FROM emails LEFT JOIN emails_sent ON emails.id = emails_sent.emailId
    Das setzt voraus das für jede Email auch ein Eintrag in emails_sent existiert. Warum kann das nicht in einer Spalte stehen? Oder sollen E-Mails mehrmals gesendet werden?
    Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

    Kommentar


    • #3
      Nein, das nicht, aber ich speichere in mails_sent noch einige andere Dinge, und das wäre dann nicht normalisiert.

      Kommentar


      • #4
        Habe nach einigem Blättern doch noch das richtige isolieren können .

        Meine Abfrage schaut jetzt so aus:

        PHP-Code:
        $sql "SELECT `id`, `to`, `toName`, `subject`, `from`, `fromName`, `body` FROM `emails` LEFT JOIN `emails_sent` ON `emails`.`id` = `emails_sent`.`emailId` WHERE `emails_sent`.`emailId` IS NULL"
        Trotzdem danke für die Mühen.

        Kommentar

        Lädt...
        X