Verinigung zweier Tabellen in dritte!

shitake83

Grünschnabel
Hallo Leute, ich hab mich schon ordentlich eingelesen aber komme immer noch nicht zu dem richtigen ergebnis.

Ich möchte zwei Tabellen in einer neuen zusammenfügen.

Tabelle 1: bs_nr, kv, plz, ort, strasse, flag
Tabelle 2: bs_nr, kv, plz, ort, strasse, lat, lng,loaddate, gcdate, flag

Tabelle 3: bs_nr, kv, plz, ort, strasse, lat, lng,loaddate, gcdate, flag

ich möchte das ganze aber an eine Bedingung knüpfen und zwar so das alle Daten die gleich sind kA zB. Tab1.bs_nr = Tab2.bs_nr das das dann auch in einer Reihe ist, aber die Daten die es in der Tabelle noch nicht gibt wie lat, lng,loaddate, gcdate dann aber trotzdem in die Reihe eingesetzt werden.

Habe es auf einem weg von Hand hingekriegt, nur bei 100k Daten is das kein Spass !
Bitte kein geflame und die "bitte lies ein handbuch" sprüche auch lassen, ansonsten einfach nicht antworten.

Danke für eure Hilfe.
 
Um was für eine Datenbank handelt es sich? Oracle? MS SQL? MySQL? MS Access? Pervasive? Postgre SQL? SQLite? oder sonstwas?
Je nachdem kann die Lösung ganz anderst aussehen

Annahme meinerseits: MySQL
Ich Versteh nicht ganz alles deiner Frage. Einträge die in beiden sind, sollten von der übernommen werden, die mehr Felder hat?

Zum zusammenfügen brauchst du ein UNION
Um diejenigen von Tabelle 1 zu Unterdrücken, die in Tabelle 2 Vorhanden sind, brauchen wir ein WHERE xy NOT IN (SELECT...)
SQL:
SELECT
    	bs_nr, 
	kv, 
	plz, 
	ort, 
	strasse, 
	NULL AS lat, 
	NULL AS lng,
	NULL AS loaddate, 
	NULL AS gcdate, 
	flag
FROM 
	table1
WHERE
	bs_nr NOT IN (SELECT DISTINCT bs_nr FROM table2)
UNION SELECT
    	bs_nr, 
	kv, 
	plz, 
	ort, 
	strasse, 
	lat, 
	lng,
	loaddate, 
	gcdate, 
	flag
FROM 
	table2
 
Zuletzt bearbeitet von einem Moderator:
Hallo danke für deine schnelle Antwort.

Ich benutze PostGresql.

Ich möchte quasi in logik mal ausgedrückt:

Kopiere alle Daten aus Tab 1 in Tab 3.
Kopiere dann alle Daten aus Tab2 in Tab3 -> jedoch NUR die Daten die Tab1 NICHT in Tab3 injiziert hat(bzw die nicht in Tab1 vorhanden sind :lat,lng....) quasi die 5 anderen Columns die in Tab2 mehr sind.
 
Ich hab es nicht gelöst.
Habe aber das Problem umgangen und mein Programm läuft wieder.
Nicht die eleganteste Lösung aber immerhin ;).

Trotzdem danke für die Hilfe.
 
Zurück