php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 04.05.2006, 14:49  
Erfahrener Benutzer
 
Benutzerbild von stefanjann
 
Registriert seit: 02.08.2005
Beiträge: 252
PHP-Kenntnisse:
Fortgeschritten
stefanjann
Standard INSERT INTO tab1 FROM tab2, aber!

Hallo,

ich finde es schon komisch, dass man über 2 Jahre Datenbanken bastelt und dann bei einem simplen Problem scheitert, weil man das eigentlich nie gebraucht hat.

Ich muss aus 5 Datenbanken eine machen. Alle Tabellen haben natürlich (sonst wäre es ja unlustig) eine andere Form.

z.B
Code:
Tabelle 1: ident | name | berufsid | ...
Tabelle 2: id | vorname | name | berufsid | ...
Tabelle 3: zaehler | Anrede | Vorname | Nachname | berufsid | ...
....
Und in meiner neuen Tabelle soll es jetzt eine einheit geben (sogar vereinfacht.)
Code:
ident | name | berufsid | ...
ident ist brav auto_increment und die IDs der Namen dürfen sich ändern, weil sich nichts darauf bezieht. und die berufsid sind schon auf die gleiche Tabelle umgeschrieben, müssen also auch nurmehr 1 zu 1 übertragen werden.

Also Wollte ich jetzt einen
Code:
INSERT INTO neuetabelle (name,berufsid) SET ????
und bei ??? setzt es aus. Wie bekomme ich jetzt die alte tabelle da rein. Ich hab versucht FROM altetabelle WHERE neuetabelle.name=altetabelle.name, etc... aber leider nichts gefunden, das mir sagt, dass dies und wie dies geht. Und die nüchterne Fehlermeldung ist ein "Syntaxfehler".

Ich hab schon gelesen, dass man UPDATE über mehrere Tabellen machen kann, aber leider eine INSERT Hilfe.

Ich hab in diesem Falle kein PHP sondern nur die MySQL-Konsole direkt am Server.

Danke für die Hilfe,
Stefan
__________________
SELECT * benutze ich nur um den Post kurz zu halten.
stefanjann ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 04.05.2006, 14:55  
Erfahrener Benutzer
 
Registriert seit: 23.08.2007
Beiträge: 1.510
M3g4Star befindet sich auf einem aufstrebenden Ast
Standard

Bau dir deinen Insert String in einer While Schleife zusammen...
welche MySQL version hast du ?!

benutz vllt. subselects ...

Code:
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);

INSERT INTO t2 (b, c)
VALUES ((SELECT a FROM t1 WHERE b='Chip'), 'shoulder'),
((SELECT a FROM t1 WHERE b='Chip'), 'old block'),
((SELECT a FROM t1 WHERE b='John'), 'toilet'),
((SELECT a FROM t1 WHERE b='John'), 'long,silver'),
((SELECT a FROM t1 WHERE b='John'), 'li''l');
http://dev.mysql.com/doc/refman/5.0/en/insert.html

kommt halt im Großen und ganzen auf die Details an ... :wink:

// EDIT oh gerade gelesen .. Kein PHP ... *hm* Also Subselect
// Aber das wird schwierig und vor allem LANG ... ???

Warum kein PHP ?!?!?
M3g4Star ist offline   Mit Zitat antworten
Alt 04.05.2006, 15:06  
Erfahrener Benutzer
 
Benutzerbild von stefanjann
 
Registriert seit: 02.08.2005
Beiträge: 252
PHP-Kenntnisse:
Fortgeschritten
stefanjann
Standard

Kein PHP, weil der Server nur eine Datenbank hat du die Daten von externen Servern abgefragt werden. Dort ist auch meist kein PHP, sondern eher CGI und Microsoft am Werke. Ich bin nur für die Datenübertragung zuständig und darf mit keinen apache auf der Maschine installieren. Und die IPs sorgen dafür, dass ich von keinen anderen Server über PHP zugreifen kann.

MySQL: 4.1.10

Ich hab grad im MySQL 4-Handbuch geschaut.
http://dev.mysql.com/doc/refman/4.0/de/handler.html

Dort steht was von
Zitat:
Code:
INSERT [LOW_PRIORITY | DELAYED] [IGNORE]
 [INTO] tabelle [(spalten_name,...)] SELECT ...
Die INSERT ... SELECT-Form fügt Zeilen ein, die aus einer oder mehreren anderen Tabellen ausgewählt wurden.
Ich bin aber noch am durchlesen und weitersuchen und ausprobieren.
Wenn ich es geschafft habe, dann sage ich Bescheid.

Gruß,
Stefan
__________________
SELECT * benutze ich nur um den Post kurz zu halten.
stefanjann ist offline   Mit Zitat antworten
Alt 04.05.2006, 15:08  
Erfahrener Benutzer
 
Registriert seit: 23.08.2007
Beiträge: 1.510
M3g4Star befindet sich auf einem aufstrebenden Ast
Standard

http://dev.mysql.com/doc/refman/4.0/...rt-select.html
M3g4Star ist offline   Mit Zitat antworten
Alt 04.05.2006, 15:11  
Erfahrener Benutzer
 
Benutzerbild von stefanjann
 
Registriert seit: 02.08.2005
Beiträge: 252
PHP-Kenntnisse:
Fortgeschritten
stefanjann
Standard

Danke für euer Kopfzerbrechen. Hab jetzt geschafft.

Code:
z.b.
INSERT INTO neuetabelle (name,berufsid) SELECT CONCAT(o.vorname,' ',o.nachname) AS name,o.berufsid FROM oldtab o;
Es lohnt doch mal die älteren Handbücher durchzulesen.

Gruß,
Stefan
__________________
SELECT * benutze ich nur um den Post kurz zu halten.
stefanjann ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Self Join / Nested Join ? Ich hab ne Blockade... iangillan Datenbanken 11 06.01.2008 21:37
Pathfinding Algorithmus optimieren? (Algorith. von Dijkstra) Martin13 PHP Tipps 2007 19 04.09.2007 19:20
Verständnisprobleme bei Utf8 > Character Set > Collate erna Datenbanken 4 20.03.2007 14:08
INSERT INTO & DELETE FROM PHP Tipps 2006 2 25.09.2006 10:28
Differenz zwischen 2 Zahlen duderino PHP Tipps 2006 19 10.08.2006 22:12
PRoblem mit Cookie bei PHPbb-Board PHP Tipps 2007 8 12.12.2005 20:56
MySQL to Access - INSERT INTO zu langsam bendigo Datenbanken 0 23.11.2005 16:33
PHP-Fehlermeldung, weiss nicht mehr weiter PHP Tipps 2005-2 12 21.09.2005 12:56
mysql dump einspielen (ohne phpmyadmin) PHP Tipps 2005-2 6 18.06.2005 21:50
[Erledigt] fehler den ich noch nie gesehen habe Datenbanken 7 09.06.2005 14:29
dynamisches MENÜ aus db lesen.probleme mit SUBid !! PHP Tipps 2005 26 24.03.2005 18:53
dem verzweifeln nahe PHP Tipps 2004 26 24.10.2004 17:28
mehrere COUNT() mit verschiedenen GROUP BY -- geht das? tapferesschneiderlein Datenbanken 0 08.09.2004 14:54
Zeile einfach überspringen bei Unique-Verletzung tapferesschneiderlein Datenbanken 6 03.09.2004 14:29
HILFE: Column count doesn't match value count at row 1 Datenbanken 17 12.06.2004 16:45

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
alter tab1 tab2, insert into (tab1, tab2

Alle Zeitangaben in WEZ +2. Es ist jetzt 22:53 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.