Einzelnen Beitrag anzeigen

Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
804 Beiträge
 
Delphi 10.4 Sydney
 
#1

Tabelle vergleichen / Left Join bringt zu viele Spalten

  Alt 11. Jul 2019, 12:04
Datenbank: MySQL • Version: 5 • Zugriff über: UniDac
Hallo Zusammen,

ich prüfe zwei Tabellen gegeneinander und schreibe die Unterschiede in eine dritte Tabelle.
Das Prüfen klappte eigentlich ganz gut, ich bekomme die richtigen Datensätze angezeigt.

Ich nutze diese Vorgehensweise auch, um unterschiedlich aufgebaute Tabellen anhand von zwei Feldern zu vergleichen. Auch das klappt eigentlich...

Mein Problem ist nur, dass mir dann die Spalten beider Tabellen ausgegeben werden und nicht nur die der Tabelle, die im select-statement steht.

Delphi-Quellcode:
select * from kommentfa a
  left join as400temp t on a.waaunr=t.waaunr and a.waaupo=t.waaupo
where t.waaunr is null
Ich bekomme die Spalten von der Tabelle kommentfa (hier stehen auch Werte in den Feldern) und die Spalten von Tabelle as400temp (hier sind logischer Werte alle NULL).

Kann mir jemand einen Tip geben, wie ich nur die Spalten von kommentfa bekomme? Ich möchte das Ganze nämlich mit einem INSERT verknüpfen.
Delphi-Quellcode:
insert into kommentfaarchiev
  select * from kommentfa a
    left join as400temp t on a.waaunr=t.waaunr and a.waaupo=t.waaupo
  where t.waaunr is null
Aktuell bekomme ich logischer Weise die Fehlermeldung: Column count doesn't match value count at row 1

Ich könnte natürlich statt select * from die einzelnen Felder auflisten. Aber ich muss das mit einigen großen Tabellen machen und müsste bei Änderungen noch auf eine weitere Procedure achten, deshalb bin ich froh, wenn ich das * behalten darf.

Hat jemand eine Idee?

Vielen Dank
Patrick
Patrick

Geändert von Ykcim (11. Jul 2019 um 12:55 Uhr)
  Mit Zitat antworten Zitat