2017-12-31 112 views
0

Ich habe zwei Tabellen und wollen die Werte der Tabelle 1 in Tabelle einzufügen 2:SQL - Einfügen von Werten einer anderen Tabelle in mehrere Spalten und betten sie in vordefinierten Werten

Table 1: tx_abc_domain_model_abc 
Columns: crdate, uid, xyz 

Table 2: tx_realurl_urldata 
Columns: crdate, page_id, rootpage_id, original_url, speaking_url, request_variables, expire 

... wo die Werte von Tabelle 1 ...

crdate_table1 
uid_table1 
xyz_table1 

... soll als Unterteil in vorgegebenen Werten, wie dies in Tabelle 2 eingebettet werden:

SET VALUES (crdate_table1, 43, 1, 'id=43&tx_abc_abc%5Baction%5D=show&tx_abc_abc%5Bcontroller%5D=Abc&tx_lei_lei%5Brecord%5D=uid_table1', 'abc/xyz_table1/', '{"id":"43","tx_abc_abc[record]":"uid_table1","tx_abc_abc[action]":"show","tx_abc_abc[controller]":"Abc"}', 0); 

. Das Ergebnis sollte z.B. aussehen wie

(crdate_table1, 43, 1, 'id=43&tx_abc_abc%5Baction%5D=show&tx_abc_abc%5Bcontroller%5D=Abc&tx_abc_abc%5Brecord%5D=uid_table1', 'abc/xyz_table1/', '{"id":"43","tx_abc_abc[record]":"uid_table1","tx_abc_abc[action]":"show","tx_abc_abc[controller]":"Abc"}', 0), 
(crdate_table1, 43, 1, 'id=43&tx_abc_abc%5Baction%5D=show&tx_abc_abc%5Bcontroller%5D=Abc&tx_abc_abc%5Brecord%5D=uid_table1', 'abc/xyz_table1/', '{"id":"43","tx_abc_abc[record]":"uid_table1","tx_abc_abc[action]":"show","tx_abc_abc[controller]":"Abc"}', 0), 
(crdate_table1, 43, 1, 'id=43&tx_abc_abc%5Baction%5D=show&tx_abc_abc%5Bcontroller%5D=Abc&tx_abc_abc%5Brecord%5D=uid_table1', 'abc/xyz_table1/', '{"id":"43","tx_abc_abc[record]":"uid_table1","tx_abc_abc[action]":"show","tx_abc_abc[controller]":"Abc"}', 0), 
(crdate_table1, 43, 1, 'id=43&tx_abc_abc%5Baction%5D=show&tx_abc_abc%5Bcontroller%5D=Abc&tx_abc_abc%5Brecord%5D=uid_table1', 'abc/xyz_table1/', '{"id":"43","tx_abc_abc[record]":"uid_table1","tx_abc_abc[action]":"show","tx_abc_abc[controller]":"Abc"}', 0), 
(crdate_table1, 43, 1, 'id=43&tx_abc_abc%5Baction%5D=show&tx_abc_abc%5Bcontroller%5D=Abc&tx_abc_abc%5Brecord%5D=uid_table1', 'abc/xyz_table1/', '{"id":"43","tx_abc_abc[record]":"uid_table1","tx_abc_abc[action]":"show","tx_abc_abc[controller]":"Abc"}', 0), 
... 

Antwort

1

Wenn ich richtig verstehe, was Sie tun können:

insert into table2 (crdate, page_id, rootpage_id, original_url, speaking_url, request_variables, expire) 
    select t1.crdate_table1, 43, 1, 
      replace('id=43&tx_abc_abc%5Baction%5D=show&tx_abc_abc%5Bcontroller%5D=Abc&tx_abc_abc%5Brecord%5D=uid_table1', 'uid_table1', t1.uid), 
      replace('abc/xyz_table1/', 'xyz_table1', t1.xyz), 
      replace('{"id":"43","tx_abc_abc[record]":"uid_table1","tx_abc_abc[action]":"show","tx_abc_abc[controller]":"Abc"}', 'uid_table1', t1.uid), 
      0 
    from table1 t1; 

Beachten Sie die Verwendung von replace(), um die Werte aus der anderen Tabelle einfügen.

+0

Leider erhalte ich einen Fehler: FEHLER 1064 (42000): Sie haben einen Fehler in Ihrer SQL-Syntax; Überprüfen Sie das Handbuch, das Ihrer MySQL-Server-Version für die richtige Syntax in der Nähe von "from tx_abc_domain_model_abc t1" in Zeile 7 entspricht –

+0

Nun funktioniert es, danke! –

Verwandte Themen