Ankündigung

Einklappen
Keine Ankündigung bisher.

Zwei Tabellen vergleichen

Einklappen

Neue Werbung 2019

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

  • Zwei Tabellen vergleichen

    Hallo, ich möchte zwei Tabellen durchsuchen nach Werten die in anderen Tabelle nicht vorhanden sind.

    tabelle_eins enthält nur eine EAN-Nummer diese Nummer ist nur einmahl vorhanden (gleich ID-Nummer).

    tabelle_zwei enhält drei Spalten (ean,han,ean_barcode), alle diese Spalten sollten mit Spalte aus ersten Tabelle vergliechen werden.

    Meine SQL-Abfrage:

    PHP-Code:
    SELECT a.ean
    FROM tabelle_eins 
    AS a
    WHERE NOT EXISTS
    (SELECT 1 FROM tabelle_zwei as b WHERE ((a.ean b.ean_barcode) AND (a.ean b.han)) AND (a.ean b.ean)); 

    Ich möchte alle Zeilen ausgeben die in tabelle_eins nicht vorhanden sind

    Ich bekomme immer falsche Ergebnisse. Es werden immer dreimal so viele Ergebnisse angezeigt als in tabelle_eins vorhanden sind tabelle_zwei hat noch weniger Zeilen.





  • #2
    LEFT JOIN http://www.peterkropff.de/site/mysql...right_join.htm

    Die sind dann mit NULL im Ergebnis.
    The string "()()" is not palindrom but the String "())(" is.

    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
    PHP.de Wissenssammlung | Kein Support per PN

    Kommentar


    • #3
      -Du möchtest alle Datensätze ausgeben die in tabelle_eins nicht existieren? Der Query ist umgedreht formuliert. Der gibt dir alle EANs die in tabelle_zwei nicht existieren. Du musst die Tabellen tauschen.
      -Die AND Verküpfung wird falsch sein, du suchst sicherlich OR. (OR -> in mindestens einem der Felder muss die EAN vorhanden sein AND -> in allen drei Feldern muss die EAN stehen)
      -In der Form kann der Query maximal soviele Datensätze wie in tabelle_eins vorhanden sind zurückgeben. Dreimal soviel ist nicht möglich.

      Kommentar


      • #4
        Code:
        SELECT t2.ean
        FROM table2 t2
        LEFT JOIN table1 t1 ON ( t1.ean IN ( t2.ean_barcode, t2.han, t2.ean ))
        WHERE t1.ean IS NULL

        Kommentar


        • #5
          join mit in... geil.
          [I]You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.[/I]

          Kommentar

          Lädt...
          X