Удалить запись с нулевым значением и присоединить к другой таблице - PullRequest
0 голосов
/ 01 января 2019

Как я могу удалить запись, столбец которой равен нулю, но запись, которую я хочу удалить, является частью другой таблицы.

Например, я хочу удалить курс, в котором нет студентов.Таблица курсов связана со студентами по course_id

DELETE COURSE_ID
FROM COURSE
INNER JOIN STUDENT
ON COURSE.COURSE_ID = STUDENT.COURSE_ID
WHERE STUDENT_ID IS NULL;

Ответы [ 2 ]

0 голосов
/ 01 января 2019

Возможно, вам нужен подзапрос только для справки в другой таблице, если таковой имеется.

          DELETE
           FROM COURSE
          WHERE COURSE.COURSE_ID IN (SELECT 
           COURSE_ID FROM STUDENT where student_id IS 
          NULL)
0 голосов
/ 01 января 2019

Для вашего вопроса, как указано, вы бы использовали EXISTS:

DELETE FROM COURSE
WHERE EXISTS (SELECT 1
              FROM STUDENT
              WHERE COURSE.COURSE_ID = STUDENT.COURSE_ID AND
                    STUDENT_ID IS NULL
             );

Однако я подозреваю, что вы хотите удалить строки из COURSE, где в этом курсе нет STUDENT,Для этого вы бы использовали NOT EXISTS:

DELETE FROM COURSE
WHERE NOT EXISTS (SELECT 1
                  FROM STUDENT
                  WHERE COURSE.COURSE_ID = STUDENT.COURSE_ID
                 );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...