[MySQL] aus 2 mach 1

palatica

Mitglied
Hallo Leute,

ich habe absolut keine Ahnung nach welchen Keywords ich für mein Problem suchen soll. Nach 3 Seiten voller SQL Probleme, dachte ich mir ich beschreibe mal mein Problem.

Ich habe 2 Tabellen die ich verknüpft habe und die Ausgabe läuft prima. Jetzt ist der Fall aufgetreten, dass ich einen Teil der Ersten und einen Teil der Zweiten Tabelle in einer Dritten Tabelle benötige.
Also: Aus 2 mach 1

Gibt es bei MySQL irgend einen Befehl oder ein Tool welches genau dies macht?
Wäre glücklich über einen Tip.

Eine Alternative wäre ein PHP-Script zu schreiben welches dies macht, habe aber nicht die nötige Motivation dazu.


Danke!
 
Hallo palatica,

du kannst beim INSERT ein SELECT-Statement angeben, aus dem er die Daten für zum Einfügen holt.

Beispielsweise kannst du so die Inhalte von 2 Tabellen parallel in eine neue Tabelle einfügen.
Aufpassen musst du, falls Keys schon benutzt werden und du keine Duplikate erzeugen möchtest.

SQL:
INSERT INTO tabelle3 (id, name) 
SELECT id,name 
  FROM tabelle1
UNION ALL
SELECT id,name
  FROM tabelle2;

Wenn du aber zwei Tabellen vorher gejoint hast, dann machst du es etwa so:

SQL:
INSERT INTO tabelle3 (name1, name2)
SELECT t1.name, 
       t2.name
  FROM tabelle1 t1
 INNER JOIN tabelle2 t2 ON ( t1.id = t2.id )

oder ähnlich.

Markus
 
Danke!

Hätte nicht gedacht dass es so einfach ist, einfach ein INSERT INTO davor und fertig.

Naja man lernt zum Glück nie aus.

Hat wunderbar geklappt und ich haben mir ne Menge arbeit gespart.

Vielen Dank!
 
Zurück