table a: column type, column type_id, column_owner, column_data1, column_data2, and so on
----------- -------------- ------------ ------------ ------------
'type a' 43 'owner sally' 'dfawerfd' 'yiyiyitit'
'type b' 51 'owner sally' 'hufvgdfd' 'weysdgjed'
'type c' 77 'owner sally' '3fdfsetr' '4tgfgert4'
table b: column type, column type_id, column_owner
----------- -------------- ------------
'type a' 43 'owner sally'
'type b' 51 'owner sally'
'type c' 77 'owner sally'
'type a' 100 'owner harry'
'type b' 111 'owner harry'
'type c' 150 'owner harry'
需要帮助开发一个神奇的sql语句来在表a中插入新行,这些行是表a中的行的副本,其中a.column_owner ='owner sally';并且对于插入的每个新记录,应复制所有列值,但应将a.column_owner设置为'owner harry',并将a.type_id设置为b.type_id,其中a.type == b.type和b.column_owner = ='老板哈利'。
所以,新表a看起来像是:
table a: column type, column type_id, column_owner, column_data1, column_data2, and so on
----------- -------------- ------------ ------------ ------------
'type a' 43 'owner sally' 'dfawerfd' 'yiyiyitit'
'type b' 51 'owner sally' 'hufvgdfd' 'weysdgjed'
'type c' 77 'owner sally' '3fdfsetr' '4tgfgert4'
'type a' 100 'owner harry' 'dfawerfd' 'yiyiyitit'
'type b' 111 'owner harry' 'hufvgdfd' 'weysdgjed'
'type c' 150 'owner harry' '3fdfsetr' '4tgfgert4'
我在表中有13,000多条记录要复制/更新,如果可能的话,可以使用一个sql命令来完成这项工作。
我期待社区的帮助,谢谢!
答案 0 :(得分:0)
没有办法预先知道这是否满足你所有的13.000条记录,但是对于你给出的例子,以下陈述可以解决问题。
查询的要点是
JOIN
column_type
SELECT
每个表格中的相应字段INSERT
tableA
SQL声明
INSERT INTO tableA
SELECT a.column_type
, b.column_type_id
, b.column_owner
, a.column_data1
, a.column_data2
FROM tableA a
INNER JOIN tableB b ON b.column_type = a.column_type
WHERE b.column_owner = 'owner harry'