mysql多表增改

mysql实现向多个表同时插入数据

insert into table1 values(数据)
insert into table2 values(数据)
insert into table3 values(数据)
一起提交就是多个表同时添加

mysql将一个表的数据更新到另外一个表,如果某个字段已经存在将不插入的sql

update 表名1  别名1  
left join ( select 字段1,字段2  from 表名2 ) 别名2 
on 别名.字段=表名1.字段 
set 表名1.字段1= 表名2.字段1,  表名1.字段2= 表名2.字段2

举个栗子:

UPDATE USER t1
LEFT JOIN (
 SELECT
  user_id,
  min(date_time) date_time
 FROM
  ctoc_tb
 GROUP BY
  user_id
) t2 ON t2.user_id = t1.user_id
SET t1.date_time = t2.date_time

mysql将一个表的数据插入到另外一个表,如果某个字段已经存在将不插入的sql
注意:
如何把一个表的查询结果插入到另一张表中(两个表的结构不同), 插入的字段个数和查询的字段个数必须一致,查询表2的字段和插入表1的字段必须一致

insert into 表名1(字段1,字段2,字段3...) select 字段1,字段2,字段3.. from 表名2 where ..

举个栗子:

insert into A(id,names) select id,firstName from B;  这样mysql执行是不行的

改进后:

insert into A(id,names) select id,firstName as names from B;   这样mysql执行是可行的

实例子sql语句
需求: mysql将一个表的数据插入到另外一个表,如果某个字段已经存在将不插入的sql

INSERT INTO city (ip, country, province, city) 
SELECT DISTINCT (remote_ip) ip,
 '' country,
 '' province,
 '' city
FROM
 ctoc
WHERE NOT EXISTS(
SELECT
   ip
  FROM
   city_tb
  WHERE
   city.ip = ctoc.remote_ip

你可能感兴趣的:(mysql多表增改)