Avatar billede kclausen Nybegynder
16. november 2012 - 00:56 Der er 1 kommentar og
1 løsning

Lave en forespørgsel på alle notifikationer der ikke er sendt til specifik bruger

Hej alle sammen

Jeg er kørt fuldstændig fast i et problem med en forespørgsel til en database og efter at have gennemsøgt Google og gennemrodet en række eksempler er jeg ikke noget videre.

Jeg ligger ud med tabellerne jeg arbejder med:

NOTI_USER
user_id
noti_id

NOTIFICATIONS
noti_id
noti_description
noti_key
noti_value
noti_input_type

I ovenstående tabeller ønsker jeg alle de rækker hvor user_id ikke er lig 1 i NOTI_USER. Det vil sige hvis jeg har et række med noti_id = 2 og der både findes en bruger med user_id = 1 og user_id = 2 og jeg trækker dataene ud, ønsker jeg ikke at min forespørgsel returnerer rækken med user_id (når jeg trækker dataene som join).

Følgende metoder har jeg arbejdet med og begge giver mig forkert resultat:

[code]SELECT DISTINCT notifications.* FROM notifications
LEFT JOIN noti_user ON notifications.noti_id = noti_user.noti_id
WHERE user_id != '1'
    OR user_id IS NULL[/code]

[code]SELECT *
FROM notifications AS no
INNER JOIN
(
    SELECT *
    FROM noti_user
    HAVING user_id != 1
) AS nu ON nu.noti_id = no.noti_id[/code]

Håber det giver mening og at nogen kan hjælpe med mit problem.
16. november 2012 - 15:34 #1
Hvis du søger efter notifikationer der ikke er sendt til user 1 burde dette virke (ikke testet):

SELECT * FROM NOTIFICATIONS where noti_id NOT IN(SELECT noti_id FROM NOTI_USER WHERE user_id = 1)
Avatar billede kclausen Nybegynder
17. november 2012 - 11:12 #2
Tak for hjælpen Christian. Det virkede præcis som det skulle.
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