MySQL Vergleich von 2 Tabellen

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Micro86, 21. Juli 2007 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 21. Juli 2007
    Hallo, ich plage mich schon etwas länger mit folgendem Problem:

    Ich habe 2 Tabellen in einer Datenbank die komplett gleich aufgebaut sind

    Aufbau:

    Id (int)
    Name (text)
    Punkte (int)
    Besitzer_id (int)

    nun möchte ich die beiden Tabellen vergleichen und die Datensätze in einer Datei speichern auf die folgende bedingungen zutreffen:

    tb1.id = tb2.id and tb1.name != tb2.name oder
    tb1.id = tb2.id and tb1.punkte != tb2.punkte oder
    tb1.id = tb2.id and tb1.besitzer_id != tb2.besitzer_id oder
    tb1.id not in tb2.id

    ich habe zwar ansätze aber die bringen mich in keiner weise weiter.
    hat vieleicht jemand von euch vielleicht eine idee oder den passenden code zur hand?

    danke schon mal
    micro86
     
  2. 21. Juli 2007
    AW: MySQL Vergleich von 2 Tabellen

    Mit welcher Programmiersprache willst du das denn lösen?

    Unabhängig von der Sprache, seh ich da aber kein großes Problem. Wären halt eine ganze Menge verlgeiche, aber rein vom logischen her seh ich da kein Problem.

    Woran genau scheitert es denn?
     
  3. 21. Juli 2007
    AW: MySQL Vergleich von 2 Tabellen

    Code:
    select id, name , punkte , besitzer_id
    from tb1 
    inner join tb2 on tb1.id = tb2.id
    where tb1.name <> tb2.name or tb1.punkte <> tb2.punkte or tb1.besitzer_id <> tb2.besitzer_id or tb1.besitzer_id not in (Select besitzer_id from tb2)
    
    soetwas in der art müsste doch gehen oder ? sicher dass die ids gleich sein sollen und nicht die besitzer_ids?
     
  4. 21. Juli 2007
    AW: MySQL Vergleich von 2 Tabellen

    @ zYco:

    ich wollte das in der mysql eigegen sprache machen (wenn das ne eigenständige sprache ist)

    Code:
    SELECT * 
    FROM `tb1` 
    WHERE tb1.id = `tb2`.`id` 
    AND tb1.name != `tb2`.`name` 
    LIMIT 0 , 30 
    
    MySQL meldet: 
    #1054 - Unknown column 'tb2.id' in 'where clause'
    so sieht meine fehler meldung momentan aus wenn ich nur die erste bedingung ausführe

    @ XodoX:
    ja es soll geschaut werden ob sich etwas an dem haus geändert hat und jedes haus hat eine eindeutige id
    ich werde deinen code mal auseinander nehmen und testen
     
  5. 21. Juli 2007
    AW: MySQL Vergleich von 2 Tabellen


    ich habe es etwas geändert
    Code:
    SELECT * 
    FROM tb1
    INNER JOIN tb2 ON tb1.id = tb2.id
    WHERE tb1.name <> tb2.name
    OR tb1.punkte <> tb2.punkte
    OR tb1.besitzer_id <> tb2.besitzer_id
    OR tb1.id NOT 
    IN (
    
    SELECT id
    FROM tb2
    )
    LIMIT 0 , 30
    ich bekomme nun alle datensätze aus tb1 die nicht identisch mit ihrem datensatz in tb2 sind

    jedoch noch nicht die datensätze aus tb1 die nicht in tb2 vorhanden sind
     
  6. 21. Juli 2007
    AW: MySQL Vergleich von 2 Tabellen

    OR tb1.id NOT IN ( SELECT id FROM tb2 ) - wird aber abgeprüft
     
  7. 21. Juli 2007
    AW: MySQL Vergleich von 2 Tabellen

    ich weiß aber er es kommt nichts
    und es ist ein datensatz der in tb2 nicht vorkommt in tb1 vorhanden
    ist ja ne testtabelle

    kan es vieleicht daran liegen das er erst die inner join bedingung abfragt und da schon die datensätze rausfallen da es ja keine entsprechende id in tb2 gibt?

    edit:
    liegt am inner join
    ohne inner join bekomme ich den datensatz mit der id 5 ausgegeben
    bis jetzt ist es mir noch nicht gelungen das so umzubiegen das es klappt
     
  8. 21. Juli 2007
    AW: MySQL Vergleich von 2 Tabellen

    inhalt von tb1
    Code:
    id name punkte besitzer_id 
    1 asdf 25 68
    2 ghjk 30 25
    3 sdf 123 45
    4 sdgh 75 23
    5 sdfg 12 32
    inhalt tb 2
    Code:
    id name punkte besitzer_id 
    1 asdf 12 68
    2 ghjks 30 25
    3 sdf 123 44
    4 sdgh 75 23
    somit müssten die datesätze 1,2,3 und 5 aus tb1 ausgegeben werden
    es kommen aber nur die datensätze 1-3
     
  9. 23. Juli 2007
    AW: MySQL Vergleich von 2 Tabellen

    ein anderes forum hat mir geholfen
    danke trotzdem
     
  10. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.