Wie Inhalte zweier Datenbanktabellen unter C++ Vergleichen???



  • Hallo,

    ich folgendes Problem:

    Ich möchte gerne mit Hilfe eines C++-Programms zwei Tabellen anhand einiger Spalten auf gleiche Einträge vergleichen. Die Tabellen beinhalten Kontaktdaten. Der Aufruf innerhalb des C++-Programms sieht ca. wie folgt aus und funktioniert bereits:

    select * from tabelle1, tabelle2 where tabelle1.telefon = tabelle2.telefon;

    Anhand dieses Aufrufs möchte ich gleiche Einträge finden und diese daraufhin vergleichen, ob sich die übrigen Daten (Adresse, Name, usw.) geändert haben.

    Das Problem ist bei mir die Frage, wie ich an die übrigen Daten der entsprechenden Zeilen komme. Ich weiss, dass ich per

    MYSQL_ROW row = mysql_fetch_row(res_set);

    einen Zeiger auf die entsprechende Zeile bekomme, jedoch ist es nur ein Zeiger auf eine der beiden Tabellenreihen. Wie bekomme ich die Reihe der anderen Tabelle?

    Wenn ich die kompletten Reihen beider Tabellen bekäme würde ich als nächstes die Inhalte in einer C++ Datenstruktur speichern und diese dann mit entsprechenden Methoden auf Unterschiede untersuchen.

    Oder bietet (My)SQL vielleicht sogar eine einfachere Variante?

    Vielen Dank und ein schönes Wochenende
    Agamemnon



  • select tabelle1.,tabelle2. from tabelle1, tabelle2 where tabelle1.telefon = tabelle2.telefon



  • Aber wie bekomme ich dann die Inhalte per row in in meine C++-Methode?

    Adressieren row[0] bis row[n-1] dann die kompletten Spalten beider Tabellen?



  • Hab´s getestet.

    Per row[i] kann man tatsächlich alle Elemente der Zeilen beider Tabellen bekommen.

    Cool, cool.

    Danke.



  • tabelle.* holt dir immer alle Spalten.
    Wenn du nur bestimmte willst oder eine bestimmte Reihenfolge dann muss du sie angeben.

    tabelle1.spalte1,tabelle2.spalte1,tabelle1.spalte2,tabelle2.spalte2 u.s.w.

    Die Reihenfolge ist bei so einem SELECT egal.
    Es gibt aber auch Fälle wo es nicht egal ist aber das betrifft Dich nicht.


Anmelden zum Antworten