ITPub博客

首页 > 数据库 > Oracle > UPDATE加SELECT语句分析

UPDATE加SELECT语句分析

Oracle 作者:xiaoxiaowm 时间:2014-08-17 16:51:24 0 删除 编辑
UPDATE course_learn cl SET cl.learning_student = 
( SELECT COUNT(el.id) FROM pr_tch_stu_elective el WHERE el.FK_COURSE_ID = cl.fk_course_id AND el.FLAG_COURSE_FINISH = '1')  
WHERE cl.learning_student !=( SELECT COUNT(el.id) FROM pr_tch_stu_elective el   WHERE el.FK_COURSE_ID = cl.fk_course_id AND el.FLAG_COURSE_FINISH = '1') 
or  cl.learning_student is null

两个字查询语句都会多次运行,运行次数和表course中的记录数是一样的,cl.fk_course_id的值在每次运行时是不一样的,取自表course_learn的fk_course_id中的值,每次一变动。

和原来想像的不一样,原来想像的是每个SELECT子句是个内联接,现在看来不是哦

这个SQL语句是MYSQL中的,没有测试和ORACLE一样不一样!

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24070544/viewspace-1252700/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-06-09

  • 博文量
    5
  • 访问量
    12111