Witam, potrzebuję pomocy. Wykonuję takie polecenie: Z tabeli FILMY usuń wszystkie krotki opisujące filmy, w których nie zagrał
żaden aktor.
W załącznikach przesyłam SS tabel, które mam dostępne w mojej bazie danych. Nie wiem jak sformułować kwerendę do tego polecenia próbowałem tak, ale albo przypisuje wszystkie wartości, albo wyświetla same kolumny bez danych.
DELETE * from obsada where obsada.id_aktora = filmy.id_filmu and obsada.id_filmu=filmy.id_filmu
DELETE * from obsada where obsada.id_aktora <> filmy.id_filmu
0
1
Mozesz albo zrobic outer right join albo prościej where not exists ( select 1 from ...)
2
Skoro masz usuwać z filmy, dlaczego usuwasz z tabeli obsada?
Wskazówka: wybierz z tabeli filmy które nie mają swojego id w tabeli obsada https://www.mysqltutorial.org/mysql-subquery/
1
Dziękuję za próbę pomocy. Rozwiązałem to w ten sposób:
SELECT * FROM filmy LEFT JOIN obsada ON obsada.id_filmu = filmy.id_filmu WHERE obsada.id_aktora IS null; - tym sprawdzicie co będzie usunięte
DELETE filmy FROM filmy LEFT JOIN obsada ON obsada.id_filmu = filmy.id_filmu WHERE obsada.id_aktora IS null; - tym usuniecie ten rekord