Mysql多表操作(增删改查)
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_tb (ip, country, province, city) SELECT DISTINCT (remote_ip) ip, country, province, city FROM ctoc_tb WHERE NOT EXISTS( SELECT ip FROM city_tb WHERE city_tb.ip = ctoc_tb.remote_ip )