2 Datensätze aus zwei Tabellen vergleichen

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

  • 2 Datensätze aus zwei Tabellen vergleichen

    Hallo Leute...

    Ein Neuling braucht mal wieder Hilfe....

    Mein Aufgabe ist es, zwei Tabellen zu vergleichen und Datensätze, die NICHT in beiden Tabellen enthalten sind, in eine extra Tabelle zu schreiben:
    Der erste Schritt, das Erzeugen von 3 Tabellen ist erfolgt, dann zähle und summiere ich aus einer anderen Tabelle und schreibe das Ergebnis in Tabelle_1. Auch das ist einwandfrei geschehen.
    Tabelle_2 ist gefüllt mit allen theoretisch möglichen Varianten.

    Jetzt die Aufgabe:
    - Nimm den ersten Datensatz aus Tabelle_1
    - Schau, ob der Datensatz so in der Tabelle_2 steht
    - Wenn das der Fall ist mach nichts
    - Wenn es nicht der Fall ist, schreibe Ihn in Tabelle_3

    Die Datensätze sind immer gleich, NUR die Spalte "id" ist unterschiedlich und die Spalte "sum" ist nur in der summierten Tabelle gefüllt.

    Ich würde das gern in einem sql-statement erledigen, aber ich bekomme die Syntax nicht hin:


    Quellcode:
    PHP-Code:
    SELECT april.* FROM april AS t1 LEFT JOIN agesamtt AS t2 ON 
    t2
    .rufnummer t1.rufnummer and t2.prodkat t1.prodkat and 
    t2.prod t1.prod and t2.kwunsch t1.kwunsch and t2.barbeitung =
     
    t1.barbeitung and t2.filiale t1.filiale and t2.number t1.number 
    WHERE t2
    .rufnummer and t2.prodkat and t2prod and t2.kwunsch 
    and t2.barbeitung and t2.filiale and t2.number IS NULL

    Der Code oben erzeugt zwar keine Fehlermeldung, aber leider auch kein Ergebnis.

    Sitze an diesem Statement schon ein paar Tage..... Trotz Such hier im Forum leider nichts gefunden....

    HILFE........

    byte
    Zuletzt geändert von kielobyte; 02.05.2005, 22:53.
    Just do it....

  • #2
    umbrich bitte deinen code!

    wenn ich das richtig sehe, willst du hinten alle spalten aus 2 auf NULL prüfen? dafür ist dein syntax falsch, aber eigentlich brauchst du doch sowieso nur eine spalte aus 2 auf NULL prüfen!? am besten eine, die im normalen betrieb nicht NULL ist?

    Code:
    WHERE a AND b AND c = 7
    und
    Code:
    WHERE a = 7 AND b = 7 AND c = 7
    sind unterschiedliche statements.
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      Hallo...

      Ersteinmal Danke für die Antwort, jedoch hilft mir das zur Zeit nicht weiter.
      Um es noch einmal zu verdeutlichen:
      Ich möchte die Datensätze ermitteln, die NICHT in der ersten, summierten Tabelle zu finden sind.
      Ich habe einen Thread gefunden, der es ansatzweise zeigt.
      http://www.php-resource.de/forum/showthread.php?s
      =fd8983a451fab9f6af60ba00dccf3430&threadid=53899
      jedoch bekomme ich bei
      PHP-Code:
      SELECT gesamtt.* from gesamtt
      LEFT JOIN stat ON gesamtt
      .rufnummer=stat.rufnummer
      where stat
      .rufnummer
      and stat.prodkat
      and stat.prod
      and stat.kwunsch
      and stat.barbeitung
      and stat.filiale
      and stat.number
      is NULL

      Kein Ergebnis angezeigt.
      Ich muss über alle Tupel in beiden Tabellen gehen oder?

      Hier habe ich ein Beispiel, das ich nicht umgesetzt bekomme:



      Hier nun ein Beispiel für ein bestimmtes Problem, welches sich nur
      mit Hilfe eines LEFT JOINS lösen läßt. Es gibt hier zwei Tabellen,
      tabelle1 und tabelle2. Es sollen alle Elemente ausgegeben werden,
      die in tabelle1, aber nicht in tabelle2 enthalten sind. In den Tabellen
      sind jeweils mitdestens eine Spalte namens id enthalten. Dieses
      Konstrukt würde bei Datenbanken, die das Kommando SELECT ...
      MINUS SELECT .., also Subselects zulassen, in MySQL dasselbe
      bewirken:
      PHP-Code:
      SELECT table1.* from table1
      LEFT JOIN table2 ON table1
      .id=table2.id
      where table2
      .id is NULL 
      Bin echt schon verzweifelt..... Schnief....
      Zuletzt geändert von kielobyte; 02.05.2005, 23:07.
      Just do it....

      Kommentar


      • #4
        Code:
        WHERE a AND b AND c = 7
        und
        Code:
        WHERE a = 7 AND b = 7 AND c = 7
        sind unterschiedliche statements.
        die bedingung im join mußt du entsprechend deiner gegebenheiten anpassen. wenn zwei datensätze schon identisch sind, wenn nur die tel-nr. gleich sind, reicht es, diese beim join zu berücksichtigen, obiges ist aber meiner meinung nach viel wichtiger.
        Die Zeit hat ihre Kinder längst gefressen

        Kommentar

        Lädt...
        X