asmodin: Unterschied zwischen 2 Tabellen ("Fehlende Datensätze" finden)

Hallo,
ich habe eine MSSQL-Datenbank und darin zwei Tabellen.

Beide Tabellen haben unterschiedliche Felder, enthalten aber eine ein gemeinsames Feld "ab_nummer".

Tabelle 1 stellt eine vollständige Liste aller vorhanden AB-Nummern dar, Tabelle 2 enthält optionale Zusatzinformationen. Sprich es sind nicht alle befüllt.

Ich möchte nun rausfinden, welche der AB-Nummern in Tabelle 1 keine optionale Information in Tabelle 2 hat (sprich dort keine Datensatz besitzt).

Gesucht habe ich bereits, allerdings bin ich mit den JOINs total vewirrt: INNER JOIN, OUTER JOIN, LEFT JOIN, RIGHT JOIN - was ist da jetzt das Richtige in meinem Fall?

  1. Hallo,

    Ich möchte nun rausfinden, welche der AB-Nummern in Tabelle 1 keine optionale Information in Tabelle 2 hat (sprich dort keine Datensatz besitzt).

    Gesucht habe ich bereits, allerdings bin ich mit den JOINs total vewirrt: INNER JOIN, OUTER JOIN, LEFT JOIN, RIGHT JOIN - was ist da jetzt das Richtige in meinem Fall?

    entweder ein OUTER JOIN, entweder als LEFT oder RIGHT JOIN mit einer Überprüfung mit IS NULL oder ein Subselect.

    Mehr zu Joins findest Du in unseren Join-Artikeln:

    - Einführung in Joins
      - Fortgeschrittene Jointechniken

    Freundliche Grüße

    Vinzenz

    1. entweder ein OUTER JOIN, entweder als LEFT oder RIGHT JOIN mit einer Überprüfung mit IS NULL oder ein Subselect.
        - Einführung in Joins

      Der Artikel hier hat geholfen, ich hab's jetzt so gemacht:

      SELECT DISTINCT tabelle1.ab_nummer
      FROM tabelle1
      LEFT OUTER JOIN tabelle2 ON tabelle1.ab_nummer = tabelle2.ab_nummer
      WHERE (tabelle2.ab_nummer IS NULL)

      Vielen Dank!