joining tables problem

0

Czesc.
Bawie sie troche SQL-em uzywajac do tego MySQL i tworze sobie jakies banalne tabele i probuje pisac do nich rozne zapytania. I teraz mam problem:
Mam tabele:

Actors(id, firstname, lastname)
Movies(id, name)
Actorsmovies(actorid, movieid)

Opuscilem "data types i Many-To-Many relationship" dla czytelnosci. I na poczatku, sprobowalem sobie wyciagnac wszystkie filmy dla danego aktora:

select * 
from actors
inner join actorsmovies
on actors.id = actorsmovies.actorid
inner join movies
on movies.id = actorsmovies.movieid
where actors.lastname = "ajosdijaosidjoaisjdoaijsdoaijsdoasjdoaisjd";
 

Wszystko dziala elegancko. Wiec potem chcialem sprobowac znalezc filmy w ktorych aktor nie gral. I tu juz jestem kompletnie zgubiony. Czy moze ktos popchnac mnie w dobrym kierunku? Nie musicie mi dawac calego query, tylko troche wyjasnienia.

Ogolnie co probowalem:

  1. probowalem zlaczyc actors + actormovies (inner join) i potem right join z actormovies + movies ale to nie wyszlo
  2. probowalem te sama query co wyzej tylko zamiast = w drugim warunku, zrobilem <>, ale tez wyszly smieci.

To bylo troche probowanie na slepo.
Dzieki z gory za helpa.

0
  1. select * to zła praktyka jeśli coś joinujesz, nie wiem nawet czy wszystkie systemy bazodanowe to w ogóle łykną
  2. jak zawsze są na to 2 sposoby:
  • podzapytanie :) czyli "select cośtam where id not in (select ...)" to jest rozwiązanie najbardziej intuicyjne
  • rozwiązanie mniej intuicyjne, z użyciem joina byłoby takie że modyfikujesz warunek złączenia ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1