Kwerenda SQL DATABASE

Wiktor Krystaszek
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
0

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

woolfik
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1611
1

Mozesz albo zrobic outer right join albo prościej where not exists ( select 1 from ...)

PA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3891
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/

Wiktor Krystaszek
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.