首页 > 数据库 > Oracle > UPDATE加SELECT语句分析
|
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/ ,如需转载,请注明出处,否则将追究法律责任。