Ilja: Datensätze aus 2 Tabellen ausgeben (mysql)

hi und frohes neues,

ich habe zwei Tabellen mit einer 1:n beziehung. in der zweiten tabelle steht demzufolge der fremdaschlüssel, wobei der name der spalte nicht identisch ist mit dem spaltenname der ersten tabelle.

mein problem ist nun, das ich die syntax nicht hinbekomme, um alle Datensätze der ersten Tabelle anzugeben, die KEINEN Eintrag in der zweiten tabelle haben. die Datensätze, die einen Eintrag haben, bekomme ich über einen inner join. aber das hilft mir in diesem falle nicht weiter, da ich keine negation davon kenne.

wer hat eine idee oder einen link, wo ich es nachlesen kann ?

Ilja

  1. hat sich erledigt, ich habe eine lösung gefunden.

    Ilja

    1. Hallo,

      hat sich erledigt, ich habe eine lösung gefunden.

      Nur für's Protokoll, äh Archiv: Wie sieht sie den nun aus, Deine Lösung?

      Ich würde es mit einer Abfrage per outer Join und der Überprüfung eines Feldes der 2. Tabelle auf NULL machen.
      Alternativ könnte man auch COUNT einsetzen wobei nach einem Feld der 2. Tabelle gruppiert wird, wobei COUNT dann eben 0 sein muß.

      Grüße
        Klaus

      1. Hallo,

        Alternativ könnte man auch COUNT einsetzen wobei nach einem Feld der 2. Tabelle gruppiert wird, wobei COUNT dann eben 0 sein muß.

        Dummsinn, das ist absoluter Dummsinn:-( wo denke ich nur hin, sollte doch lieber _vor_dem Posting den Kaffee trinken.

        Grüße
          Klaus

  2. Hi,

    wer hat eine idee oder einen link, wo ich es nachlesen kann ?

    fuers Archiv:

    http://www.mysql.com/doc/en/JOIN.html

    If there is no matching record for the right table in the ON or USING part in a LEFT JOIN, a row with all columns set to NULL is used for the right table. You can use this fact to find records in a table that have no counterpart in another table:
    mysql> SELECT table1.* FROM table1
        ->        LEFT JOIN table2 ON table1.id=table2.id
        ->        WHERE table2.id IS NULL;

    This example finds all rows in table1 with an id value that is not present in table2 (that is, all rows in table1 with no corresponding row in table2). This assumes that table2.id is declared NOT NULL, of course. See section 5.2.6 How MySQL Optimises LEFT JOIN and RIGHT JOIN.

    Jan
    --

  3. Hi,

    ich habe zwei Tabellen mit einer 1:n beziehung. in der zweiten tabelle steht demzufolge der fremdaschlüssel, wobei der name der spalte nicht identisch ist mit dem spaltenname der ersten tabelle.

    mein problem ist nun, das ich die syntax nicht hinbekomme, um alle Datensätze der ersten Tabelle anzugeben, die KEINEN Eintrag in der zweiten tabelle haben. die Datensätze, die einen Eintrag haben, bekomme ich über einen inner join. aber das hilft mir in diesem falle nicht weiter, da ich keine negation davon kenne.

    "FULL JOIN" und ggf. andere JOINS gibt's hoffentlich auch in Deinem DB(M)S.

    Gruss,
    Lude