像学生一样定义视图表会阻止人员表上的操作UPDATE [关闭]

问题描述 投票:-3回答:1

students as view which is related To person Table

UPDATE persons 
SET persons.EN_FAMILY = 'Test' 
WHERE persons.STCODE IN
        (SELECT students.PERSONS_STCODE AS STCODE 
         FROM students 
         WHERE @Counter > 0 
         AND students.ID NOT IN
            (SELECT sel_lesson.ST_ID 
             FROM sel_lesson 
             WHERE sel_lesson.YEAR = @CurrenYear 
             AND sel_lesson.TERM = @CurrentTerm 
             GROUP BY sel_lesson.ST_ID)
         AND students.STATUS IN('1','14')
);
mysql sql
1个回答
1
投票

尝试使用内部联接

UPDATE persons 
INNER JOIN  (SELECT students.PERSONS_STCODE AS STCODE 
         FROM students 
         WHERE @Counter > 0 
         AND students.ID NOT IN
            (SELECT sel_lesson.ST_ID 
             FROM sel_lesson 
             WHERE sel_lesson.YEAR = @CurrenYear 
             AND sel_lesson.TERM = @CurrentTerm 
             GROUP BY sel_lesson.ST_ID)
         AND students.STATUS IN('1','14') ) T on t.STCODE = persons.STCODE

SET persons.EN_FAMILY = 'Test' 
© www.soinside.com 2019 - 2024. All rights reserved.