Avatar billede ldplusse Nybegynder
04. november 2004 - 13:45 Der er 8 kommentarer og
1 løsning

Find hvad en bruger mangler

Jeg skal bruge en SQL sætning som kan finde alle de "Titler" som en bruger ikke har.
Har prøvet med dette men den finder alle de titler som man ikke har og andre har. (dvs. den finder faktisk alt, da alle bruger har alle titler lagt sammen)

SELECT DISTINCT F.FILMID FROM FILM F
    LEFT JOIN MOVIE2USERS MO ON MO.MOVIEID = F.FILMID
    WHERE MO.USERID IS NULL OR MO.USERID <> @USERID

Movie2User:
id  filmid  userid
1    153      34
2    153      25
3    153      27
4    154      25
5    154      27

Så hvis jeg er bruger med UserID 34 skulle mit resultal være at jeg mangler film med filmID 154.
Men jeg for også filmID 153 da UserID <> 34 ved ID 2 & 3

Nogen bud.
Avatar billede arne_v Ekspert
04. november 2004 - 13:51 #1
SELECT filmid FROM Movie2User WHERE filmid NOT IN
(SELECT filmid FROM Movie2User WHERE userid = X)
Avatar billede arne_v Ekspert
04. november 2004 - 13:52 #2
Smid selv en DISTINCT på og en JOIN med Film om nødvendigt.
Avatar billede ldplusse Nybegynder
04. november 2004 - 14:06 #3
Det kan jeg ikke lige for til at funke.
Måske det bare er mig som ikke kan finde rundt i det. Jeg er ret ny på dette område. Kan bare ikke finde noget info. om dette nogen steder.

Min sql string hedder nu:
SELECT DISTINCT F.FILMID FROM FILM F
    LEFT JOIN MOVIE2USERS MO ON MO.MOVIEID = F.FILMID
    WHERE MO.USERID NOT IN (SELECT filmid FROM Movie2Users WHERE userid =2)
Avatar billede arne_v Ekspert
04. november 2004 - 14:20 #4
Ifølge det du postede først så hedder feltet filmid ikke moveid i movie2user
tabellen
Avatar billede arne_v Ekspert
04. november 2004 - 14:21 #5
Men hvis du kun skal bruge filid har du jo ikke noget at bruge film tabellen til og
kan nøjes med mit 13:51:42 forslag
Avatar billede ldplusse Nybegynder
04. november 2004 - 14:27 #6
jeg skal bruge en hel del fra filmtabellen, har bare ikke ført det med på her for at gøre det simpelt.

I min Movie2Users tabel hedder felterne id,movieid,userid og ikke som skrevet først.
Det er endtlig lidt rodet med at det hedder filmid i den ene og movieid i den anden.
Avatar billede ldplusse Nybegynder
04. november 2004 - 14:33 #7
Så var den der.
Det var jo bare pga min skrive fejl med den filmid/movieid kolonne i Movie2Users tabel.

Så den skulle se sådan ud:
SELECT DISTINCT F.FILMID, F.TITEL, F.GENRE, F.AC3, F.UNDERTEKSTER, F.SUB FROM FILM F
    LEFT JOIN MOVIE2USERS MO ON MO.MOVIEID = F.FILMID
    WHERE MO.MOVIEID NOT IN (SELECT movieid FROM Movie2Users WHERE userid =2)
Avatar billede arne_v Ekspert
04. november 2004 - 14:44 #8
så ligger jeg et svar
Avatar billede ldplusse Nybegynder
04. november 2004 - 14:45 #9
Tak for det Arne V.
Jeg har en endnu mere kompliceret søgning som jeg skal have fortaget, som jeg ikke ved om jeg overhovet skal starte på.
Men jeg prøver at oprette den som en ny opgave.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester