![]() |
Datenbank: MySQL • Version: 3.28 • Zugriff über: ADO.NET
Datensätze aus einer Tabelle in eine andere einfügen?
Hallo DB-Gurus :),
ich habe hier 2 Tabellen (MySQL), in der einen stehen Datensätze, die ich alle in eine andere Tabelle einfügen möchte (zumindest einige Spalten). Die zweite Tabelle hat auch noch eine Spalte mehr, die dann auch noch mit einem Standardwert, der sich aber je nach Kopiervorgang ändert, befüllt werden muss. Der Zugriff erfolgt über ADO.NET mit dem MySQL Provider, aber das ist ja mehr oder weniger wurscht. Ist ja eine generelle SQL-Frage. Ist das in einem Statement zu machen? So in der Art vielleicht:
SQL-Code:
Nur dass, dann noch die fehlende Spalte auch noch ergänzt werden müsste.
INSERT INTO GroupSettings (`OptID`, `Value`) VALUES (SELECT `OptID`, `Value` FROM Settings)
Oder muss ich die zu kopierenden Daten erst vom Server holen, in meinem Programm verarbeiten und dann wieder einfügen? Das wäre ja nicht das Problem, nur erstens wird das sicherlich langsamer sein und zweitens ist es mehr Tipparbeit :mrgreen:. Danke :) |
Re: Datensätze aus einer Tabelle in eine andere einfügen?
Zitat:
SQL-Code:
müsste selbst mit MySQL gehen.
insert into groupsettings(optid,value) select optid,value from settings [where...]
|
Re: Datensätze aus einer Tabelle in eine andere einfügen?
Okay, ohne Values :).
Aber wie mache ich das mit der zusätzlichen Spalten in der neuen Tabelle? Groupsettings hat nämlich noch GroupID als Spalte. Da soll z.B. eine 1 rein. Kann man das auch noch mit reinkriegen? Sonst setze ich das mit nem zweiten Statement richtig. |
Re: Datensätze aus einer Tabelle in eine andere einfügen?
Einfach mit einer Konstante in der Select-Abfrage:
SQL-Code:
insert into groupsettings(optid, value, groupid) select optid, value, 1 from settings [where...]
|
Re: Datensätze aus einer Tabelle in eine andere einfügen?
Cool. Danke für den Tipp. Hätte ich auch selber drauf kommen können.
|
Re: Datensätze aus einer Tabelle in eine andere einfügen?
Wollte es gerade einbauen, dabei ist noch eine Frage entstanden...
Man kann ja auch mehrere Datensätze auf einmal einfügen:
SQL-Code:
Ist das auch mit der von dir gezeigten Variante möglich?
INSERT INTO GroupSettings (`OptID`, `Value`) VALUES ('', '', ''), ('', '', '')
Sprich so:
SQL-Code:
Man müsste irgendwie die Ergebnisse beider Select Statements verbinden. Ein Join ist ja nicht, was dann?
insert into groupsettings(optid,value) (select optid,value,2 from settings AND select optid,value,3 from settings )
Das ist doch bestimmt auch möglich, oder? |
Re: Datensätze aus einer Tabelle in eine andere einfügen?
mehrere result sets verbindet man mit UNION
SQL-Code:
insert into groupsettings(optid,value) (select optid,value,2 from settings union select optid,value,3 from settings )
|
Re: Datensätze aus einer Tabelle in eine andere einfügen?
Natürlich Unions :wall:
Danke ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz