Удалить запрос пустых значений - PullRequest
0 голосов
/ 31 октября 2018

Мне нужно написать SQL-запрос, который должен удалить все книги с нулевым значением.

Пока что я создал запрос, который показывает, какие книги обнуляются:

Запрос, который показывает, какие книги обнуляются

Query that shows which books are nulled

Теперь мне нужно вычислить рисунок SQL-запроса, чтобы удалить все книги, которые обнулились. Я предположил, что запрос будет:

Ответы [ 3 ]

0 голосов
/ 31 октября 2018
DELETE FROM BOOK 
 WHERE BOOK_NUM IN
(SELECT B.BOOK_NUM
  FROM BOOK B FULL JOIN CHECKOUT C ON C.BOOK_NUM = B.BOOK_NUM
 WHERE C.CHECK_OUT_DATE IS NULL);

Внутренний запрос выберет всех book_num, у которых нет check_out_date. Внешний запрос удалит книги, представленные в таблице книг, если book_num будет возвращен внутренним запросом.

0 голосов
/ 31 октября 2018

Я не уверен, что FULL JOIN делает в четко определенной модели данных. Предположительно, вы хотите:

DELETE FROM BOOK
WHERE NOT EXISTS (SELECT 1
                  FROM CHECKOUT C
                  WHERE C.BOOK_NUM = B.BOOK_NUM AND
                        C.CHECK_OUT_DATE IS NOT NULL
                 );
0 голосов
/ 31 октября 2018

Вы можете попробовать ниже

DELETE FROM BOOK
WHERE EXISTS (SELECT 1 FROM BOOK B 
  FULL JOIN CHECKOUT C ON C.BOOK_NUM = B.BOOK_NUM 
  WHERE C.CHECK_OUT_DATE IS NULL);
...