2 votes

Requête de suppression des valeurs nulles

Je dois écrire une requête SQL qui devra supprimer tous les livres qui sont annulés.

Jusqu'à présent, j'ai créé une requête qui montre quels livres sont annulés :

Requête qui montre quels livres sont annulés

Query that shows which books are nulled

Maintenant, j'ai besoin de trouver la requête SQL pour supprimer tous les livres qui ont été annulés. J'ai supposé que cette requête serait :

1voto

fa06 Points 13375

Vous pouvez essayer ci-dessous

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);

0voto

AmeyaN99 Points 170
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);

La requête interne sélectionnera tous les book_num qui n'ont pas de check_out_date. La requête externe supprimera les livres présents dans la table books si le book_num est retourné par la requête interne.

0voto

Gordon Linoff Points 213350

Je ne suis pas sûr de ce qu'est un FULL JOIN se fait dans un modèle de données bien défini. Vraisemblablement, vous voulez :

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
                 );

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X