Witajcie!
Mam następujące tabele w bazie danych:
aktorzy (id_aktora, imie, nazwisko)
filmy (id_filmu, tytul, rok_produkcji, cena)
klienci (id_klienta, imie, nazwisko)
kopie (id_kopii, id_filmu, czy_dostepna)
obsada (id_aktora, id_filmu)
wypozyczenia (id_klienta, id_kopii, data_wypozyczenia, data_zwrotu)
Potrzebuję napisać polecenia w MySQL realizujące zadania:
- Wyświetl tytuły filmów, wypożyczonych zarówno przez klienta o nazwisku 'Rubik' , jak i klienta o nazwisku 'Kostka'
Moje polecenie:
SELECT filmy.tytul FROM filmy
JOIN kopie ON filmy.id_filmu = kopie.id_filmu
JOIN wypozyczenia ON kopie.id_kopii = wypozyczenia.id_kopii JOIN klienci ON wypozyczenia.id_klienta = klienci.id_klienta WHERE nazwisko = 'Rubik' AND nazwisko = 'Kostka';
No i pojawił się problem, a mianowicie - pokazuje mi kolumnę 'tytul' ale pustą. A jest jeden film 'Terminator', który był wypożyczony przez obydwu panów.
Co jest źle z zapytaniem?
Proszę pomóżcie, bo nie mam pomysłu.
- Dla każdego aktora, który zagrał w co najmniej 2 filmach wyświetl jego imię, nazwisko oraz liczbę filmów, w których zagrał.
Wiem tylko, że trzeba połączyć "joinem" 2 tabele: aktorzy i obsada, ale jak napisać warunek wyszukujący ilość filmów, w których zagrali aktorzy?
Przeszukałam internet i nie znalazłam nic, co pomogłoby mi zrozumieć jak napisać warunek…
- Utwórz relację KSIAZKI o następującej strukturze:
a. atrybut ID_KSIAZKI typu całkowitoliczbowego klucz podstawowy
b. atrybut TYTUL typu łańcuch znakowy, maksymalnie 45 znaków, wartość obowiązkowa
c. atrybut OCENA typu liczba rzeczywista, wartość z przedziału od 2 do 6
Moje polecenie:
CREATE TABLE ksiazki (id_ksiazki INT PRIMARY KEY, tytul VARCHAR(45) NOT NULL, ocena SET(2, 3, 4, 5, 6))
Czy dobrze jest to zapisanie? czy przy atrybucie ocena ten zapis jest poprawny?
Jestem dopiero na początku drogi z baz danych.
Bardzo dziękuję za każdą pomoc, podpowiedź, wskazówkę.
Pozdrawiam