Avatar billede sth Novice
25. oktober 2001 - 15:37 Der er 4 kommentarer og
3 løsninger

Problem med LEFT JOIN

jeg har2  tabeller, en med alle muligheder (den heder \"add_submenu\", og en med de muligheder brugerene har valgt (den heder \"submenu\").

Nu vil jeg gerne have vist alle poster fra add_submenu der ikke findes i submenu hvor userid <> bruger id.
koden jeg har nu ser sådan ud:
SQL = \"SELECT add_submenu.* FROM add_submenu LEFT JOIN submenu ON add_submenu.url=submenu.url where submenu.url IS NULL  and add_submenu.kategoriid =\" & id

den virker også næsten, men hvis en anden bruger har valgt noget fra add_submenu, så får andre det ikke vist, og det jeg ville var jo at jeg ville vise dem brugeren ikke havde i sin menu, jeg har prøvet med følgende kode:
\'SQL = \"SELECT add_submenu.* FROM add_submenu LEFT JOIN submenu ON add_submenu.url=submenu.url where submenu.url and userid =\" &Session(\"UserID\") & \" IS NULL  and add_submenu.kategoriid =\" & id

men den virker slet ikke, for så vises der slet ikke noget, er der nogle kloge hovder her der har en løsning ??
Jeg har en sql kode der viser værdier i der findes i en tab
Avatar billede sth Novice
25. oktober 2001 - 15:42 #1
De 2 tabeller ser sådan ud

add_submenu:

id  int(6) auto_increment
sort  varchar(10) 
navn  varchar(50
kategoriid  smallint(5) 
url  varchar(150) 


submenu:
id  int(6)  auto_increment
sort  varchar(10) 
navn  varchar(50)
kategoriid  smallint(5) 
url  varchar(200) 
slet  char(3)
userID  int(8)
Avatar billede sth Novice
25. oktober 2001 - 16:25 #2
ok så må jeg jo prøve med 350 point i stedet for 100, men hjælp mig !!
Avatar billede proaccess Nybegynder
26. oktober 2001 - 09:07 #3
Du kan prøve med denne:

SELECT add_submenu.id, add_submenu.sort, add_submenu.navn, add_submenu.kateforiid, add_submenu.url
FROM add_submenu LEFT JOIN submenu ON add_submenu.url = submenu.url
GROUP BY add_submenu.id, add_submenu.sort, add_submenu.navn, add_submenu.kateforiid, add_submenu.url
HAVING (((Min(([UserId]=5)))=0 Or (Min(([UserId]=5))) Is Null));

Den virker i Access, men det er jo ingen garanti i MySQL...
Avatar billede proaccess Nybegynder
26. oktober 2001 - 09:08 #4
kateforiid skal selvfølgelig være kategoriid ;-)
Avatar billede mortenfn Nybegynder
26. oktober 2001 - 13:47 #5
jeg er ikke helt sikker på at jeg har fanget den helt, men prøv noget idenne retning

SELECT * FROM add_submenu LEFT JOIN submenu ON add_submenu.url = submenu.url where
add_submenu.kategoriid not like sub.kategoriid
Avatar billede sth Novice
26. oktober 2001 - 14:15 #6
jeg har løst det ved at jeg lavede en ny tabel hvor jeg så smed alle brugerns submenudata over i og herefter var det jo så bare at rette 2 ord i min gamle sql, så den blev til:

SQL = \"SELECT add_submenu.* FROM add_submenu LEFT JOIN temp_submenu ON add_submenu.url=temp_submenu.url where temp_submenu.url IS NULL  and add_submenu.kategoriid =\" & id


dit andet eks. virker ikke, men tak for at du gad bruge din tid på det, så 1 får da lige 25 point hver, håber at det er ok
Avatar billede mortenfn Nybegynder
26. oktober 2001 - 17:15 #7
;O)
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