MySQL: Auswahl von allen Zeilen außer bestimmten

Hallo.

Ich hab mit Freunden zusammen ne kleine Filmdatenbank aufgezogen.
Es gibt verschiedene Tabellen: tab_MOV_MOVIE mit allen Filmem die wir haben tab_MOV_SEEN mit user_id - movie_id kombinationen, wer was schon gesehen hat und tab_MOV_OWNER mit Kombinationen wer welchen Film besitzt.
Ich will jetzt eine Abfrage machen, von den Filmen, die ich habe (O.user_id = 3) die ich aber nicht gesehen habe. Dabei kann es vorkommen, das ein Film in tab_MOV_SEEN gar nicht drinne steht, oder ihn andere gesehen haben.
Ich hab mir da schon mehrere Stunden den Kopf zermartert und Doku gewelzt, aber das richtige war noch nicht dabei. Kann mir jemand helfen? zumindest mal nen Link zu ein bischen Doku, wo das halbwegs verständlich drinne steht…

Mit freundlichen,
Pascal Pucholt

Hallo,

für eine solche Abfrage gibt es im ANSI SQL einige Möglichkeiten. Ich weiß allerdings nicht, inwieweit die MySQL diese implementiert hat:

  1. MINUS
    Mit MINUS kannst Du die Ergebnismengen zweier Abfragen (sofern die Spalten gleiche Typen haben oder NULL sind) voneinander abziehen.

  2. NOT EXISTS ( SELECT * FROM … )
    Hiermit kannst Du auf Vorhandensein / Nichtvorhandensein von Datenzeilen testen. Im inneren SELECT kannst Du auf den äußeren zugreifen.

  3. attribut NOT IN (SELECT attribut FROM …)
    Hiermit machst Du einen zweiten unabhängigen SELECT innerhalb einer Abfrage.

Viel Spaß beim Ausprobieren

Gruß

Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Vielen vielen Dank für die schnelle Antwort, ich werds gelich mal ausprobieren…

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]