Ich habe zwei Tabellen A und B. Beide hat die gleichen Spaltennamen. Ich möchte diese zwei Tabellen zusammenführen und sie in Tabelle C laden. Tabelle C hat auch die gleichen Spaltennamen wie A und B und eine weitere Spalte im Zeitstempel (dies für die Erfassung der zusammengeführten Zeit). Ich möchte keine Duplikate in Tabelle C. Ich versuchte Union, aber doppelte Werte erhalten, weil eine der Spalte in Tabelle C im Timestamp-Datentyp.Union zwei Tabellen mit Unix_timestamp() -Funktion in beiden
Zum Beispiel unten ist meine Beispielabfrage
insert overwrite table TableC
select field1,field2, unix_timestamp() as field3 from table_A
UNION
select field1,field2, unix_timestamp() as field3 from table_B
Die beiden unix_timestamp() Funktion unterschiedliche Zeitstempel (nur eine Millisekunde Differenz) gibt, und ich bin immer doppelte Daten wegen des Zeitstempels.
Gibt es eine andere Möglichkeit, den gleichen Zeitstempel für beide Funktionen während der Vereinigung zu erhalten?
Sie können NULL in dem Zeitstempel-Feld einfügen und dann ausführen: update TableC gesetzt field3 = unix_timestamp(), wo field3 null –
@GiacomoDegliEsposti Vielen Dank für Ihre Anregung ist. Ich selbst habe die Problemumgehung gefunden. Ich habe versucht wie unten und es hat funktioniert. 'einfügen Überschreiben Tabelle TableC wählen T1.field1, T1.field2, unix_timestamp() als field3 von (wählen Sie Feld1, Feld2 aus TABLE_A UNION select Feld1, Feld2 aus Table_B) AS T1' –