当前位置:   article > 正文

SQL(五)查询 插入/更新/删除_查询插入

查询插入

常用于刷数据

一、mysql:

1、查询插入:把一个数据表查询的结果插入另一个表:

  1. insert into t_user_project1 (user_id, project_id,is_delete, create_time,update_time, is_current_project)SELECT
  2. distinct(task.assigned_charge_id),1,0,NOW(),NOW(),0
  3. from t_crowd_task_nearest task where
  4. task.is_delete = 0 and assign_type = 0 and task.project_id=1;
  5. insert into t_user_project1 (user_id, project_id,is_delete, create_time,update_time, is_current_project)SELECT
  6. distinct(task.assigned_agent_id),1,0,NOW(),NOW(),0
  7. from t_crowd_task_nearest task where
  8. task.is_delete = 0 and assign_type = 1 and task.project_id=1
  9. and task.assigned_agent_id not in (select user_id from t_user_project1 )
  10. INSERT INTO t_menu (
  11. RESOURCE_CODE,
  12. RESOURCE_NAME,
  13. RESOURCE_VALUE,
  14. PARENT_RESOURCE_ID,
  15. RESOURCE_TYPE,
  16. VUE_URL
  17. ) SELECT
  18. 'usermanager',
  19. '用户管理',
  20. 'url',
  21. id,
  22. 3,
  23. '/user/usermanager'
  24. FROM
  25. t_menu
  26. WHERE
  27. RESOURCE_CODE = 'user'

2、查询更新:mysql使用一个表的数据更新另一张表:

UPDATE tb1,tb2 SET tb1.address=tb2.address WHERE tb1.name=tb2.name

   或连接查询:

  1. UPDATE tb1 a
  2. left join tb2 b on a.name = b.name
  3. left join tb3 c on b.id = c.user_id
  4. SET a.address=b.address
  5. where a.is_delete = 0 and b.is_delete = 0;

3、查询删除:mysql查询删除不支持from后面的查询语句包含主表名,如菜单表

  1. delete from t_menu where parent_menu_id in (
  2. select id from t_menu where menu_id ='user'
  3. );

会报错[Err] 1093 - You can't specify target table 't_menu' for update in FROM clause ,可以加个临时表:

  1. delete from t_menu where parent_menu_id in (
  2. select e. id from (
  3. select id from t_menu where menu_id ='user'
  4. ) e
  5. );

同样的方法来删除重复数据(学校id+学校名称重复的组合):

  1. DELETE
  2. FROM
  3. t_school
  4. WHERE
  5. id IN (
  6. SELECT
  7. e.id
  8. FROM
  9. (
  10. SELECT
  11. min(id) id
  12. FROM
  13. t_school
  14. GROUP BY
  15. `school_name`,
  16. `school_id`
  17. HAVING
  18. count(1) > 1
  19. ) e
  20. );

二、sqlServer

1、查询插入:

insert into table_a(account) select user_id from table_b;

2、查询更新: 

  1. Update dbo.table_1 
  2.  set dbo.table_1 .project_code=dbo.table_2.project_code
  3. FROM dbo.table_1 , dbo.table_2  where 
  4. dbo.table_1.project_name=dbo.table_2.project_name;

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/487883
推荐阅读
相关标签
  

闽ICP备14008679号