Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Eine Tabelle aus meheren Table erstellen ? (https://www.delphipraxis.net/58412-eine-tabelle-aus-meheren-table-erstellen.html)

sniper_w 6. Dez 2005 17:48

Datenbank: mySQL • Version: 4.0.23 • Zugriff über: Mit dem Programm "MySQL-Front" (auch Delphi+Zeos)

Eine Tabelle aus meheren Table erstellen ?
 
Eine Tabelle aus meheren Table erstellen ? So zu sagen, zusammenführen. Alle Tabellen die zusammengeführt werden sollen, haben gleichen Felder. Ich könnte das schon "manuel" erledigen, wissen wollte ich aber, ob es eine vordefinierte Funktion( Befehl ) gibt ( in SQL Sprache ).

marabu 6. Dez 2005 18:01

Re: Eine Tabelle aus meheren Table erstellen ?
 
Hallo.

Du kannst eine Tabelle nach der anderen hinzufügen:

SQL-Code:
INSERT INTO total SELECT * FROM tableOne
Die Ziel-Tabelle TOTAL muss dann vorher existieren.

Grüße vom marabu

sniper_w 6. Dez 2005 18:26

Re: Eine Tabelle aus meheren Table erstellen ?
 
Leider nicht so ganz... :roll:
Zitat:

Error: 1062 - Duplicate entry '1' for key 1

flomei 6. Dez 2005 18:28

Re: Eine Tabelle aus meheren Table erstellen ?
 
Naja, du versuchst wohl auch ne ID mitzukopieren, die würde ich weglassen...

D.h. dann vielleicht so:
SQL-Code:
INSERT INTO total SELECT foo, bar, foobar, barfoo FROM teiltabelle
MfG Florian :hi:

sniper_w 6. Dez 2005 18:29

Re: Eine Tabelle aus meheren Table erstellen ?
 
Schon versucht....
Zitat:

Error: 1136 - Column count doesn't match value count at row 1

flomei 6. Dez 2005 18:32

Re: Eine Tabelle aus meheren Table erstellen ?
 
Stimmt, nun erwartet mySQL ja einen Wert für die ID in der Tabelle "total"...
Wenn ich mich besser mit SQL auskennen würde könnte ich dir vielleicht helfen aber ich bin hier am Ende... :(

MfG Florian :hi:

sniper_w 6. Dez 2005 18:38

Re: Eine Tabelle aus meheren Table erstellen ?
 
Na ja....ich muss doch eine PHP-Skript schreiben.... :wink:

marabu 6. Dez 2005 18:52

Re: Eine Tabelle aus meheren Table erstellen ?
 
Ihr seid doch schon nahe dran gewesen:

SQL-Code:
INSERT INTO total(foo, bar, foobar, barfoo)
  SELECT foo, bar, foobar, barfoo
  FROM teiltabelle
Für den ID in der Zieltabelle musst du allerdings irgendwie vorsorgen.

marabu

sniper_w 6. Dez 2005 19:04

Re: Eine Tabelle aus meheren Table erstellen ?
 
Mag sein ;), aber die Skript hat es auch geschafft :). Danke.

Jelly 6. Dez 2005 20:43

Re: Eine Tabelle aus meheren Table erstellen ?
 
Zitat:

Zitat von sniper_w
Mag sein ;), aber die Skript hat es auch geschafft :). Danke.

Aber nicht in einer Zeile wie marabu's Lösung, oder :-)

Musst Du wirklich alle Daten redundant in eine einzelne Tabelle kopieren... Vielleicht ist auch ein UNION über mehrere Tabelle möglich

SQL-Code:
SELECT foo, bar, foobar, barfoo FROM teiltabelle_1
union
SELECT foo, bar, foobar, barfoo FROM teiltabelle_2
union
SELECT foo, bar, foobar, barfoo FROM teiltabelle_3
union

order by foo

sniper_w 6. Dez 2005 21:02

Re: Eine Tabelle aus meheren Table erstellen ?
 
Genau in so vielen Zeilen...
Code:
<?
  require_once "MydbConn.php";
 
  myConn();
 
  $result = mysql_query( "SELECT * FROM teiltabelle" );
 
  while ( $row = mysql_fetch_assoc($result) )
  {
      $query = "INSERT INTO total (ID, foo, bar, foo1, bar1) ";
      $query .="VALUES (NULL, '".$row['foo']."', '"$row['bar']."', '".$row['foo1']."', '"
      .$row['bar1']."')";
      mysql_query( $query );
  }
 
  myDisConn();

?>

Jelly 6. Dez 2005 21:13

Re: Eine Tabelle aus meheren Table erstellen ?
 
Bedenke aber dass bei vielen Records deine Variante mit der Schleife um Einiges langsamer ist, als wenn Du alles in einem Rutsch kopierst.

sniper_w 6. Dez 2005 21:16

Re: Eine Tabelle aus meheren Table erstellen ?
 
Das ist schon klar, dass es so ist, aber die Sache ist erledigt und es waren max 25 Beitragen pro Tieltabelle.

DelphiAndreas 3. Jan 2006 08:08

Re: Eine Tabelle aus meheren Table erstellen ?
 
ich habe ein ähnliches Problem mit zwei DBase-Tabellen, sie haben die gleiche Struktur und auf eine ID brauch ich wohl auch nicht zu achten, deshalb habe ich folgenden SQL-Befehl geschrieben:

Delphi-Quellcode:
INSERT INTO tabelle1 SELECT * FROM tabellezumanhaengen
Leider erhalte ich die Fehlermeldung "ungültiger Parameter", wer kann mir helfen?

mkinzler 3. Jan 2006 08:14

Re: Eine Tabelle aus meheren Table erstellen ?
 
SQL-Code:
INSERT INTO total( foo, bar, foobar, barfoo) SELECT foo, bar, foobar, barfoo FROM teiltabelle

DelphiAndreas 3. Jan 2006 08:17

Re: Eine Tabelle aus meheren Table erstellen ?
 
geht das nicht vielleicht auch ohne die genaue angabe der felder? die funktion müsste nämlich je nach tabellentyp mit ganz unterschiedlichen strukturen zurechtkommen, wobei die aneinanderzufügenden tabellen natürlich die gleiche struktur haben.

DelphiAndreas 3. Jan 2006 10:29

Re: Eine Tabelle aus meheren Table erstellen ?
 
Zitat:

Zitat von mkinzler
SQL-Code:
INSERT INTO total( foo, bar, foobar, barfoo) SELECT foo, bar, foobar, barfoo FROM teiltabelle


das geht auch nicht :cry:

kann es daran liegen, dass ein paar datumsfelder dabei sind?


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:00 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz