Avatar billede moejensen Nybegynder
11. oktober 2004 - 16:25 Der er 7 kommentarer og
1 løsning

Hjælp til svær SQL

Jeg har følgende tabeller i min database

module_group
------------
moduleID
groupID


modules
-------
id
moduleName


group_user
----------
groupID
userID


groups
-------
id
name

Det jeg er ude efter er * fra modules hvor userID er ex. 2

Jeg har prøvet at sætte det på i access og den kom med følgende forslag:

SELECT modules.*
FROM modules INNER JOIN ((groups INNER JOIN group_user ON groups.id = group_user.groupID) INNER JOIN module_group ON groups.id = module_group.groupID) ON (groups.id = modules.id) AND (modules.id = module_group.moduleID)
WHERE (("userID"=2));

Men hvis jeg fyrre den af på min mySql, hvor dataene er, så får jeg et tomt recordset

Er der nogen af jer der har et bud?
Avatar billede arne_v Ekspert
11. oktober 2004 - 16:41 #1
Prøv:

SELECT modules.*
FROM ((groups JOIN group_user ON groups.id = group_user.groupID) JOIN module_group ON groups.id = module_group.groupID) JOIN modules ON (groups.id = modules.id) AND (modules.id = module_group.moduleID)
WHERE userID=2
Avatar billede anhansen Nybegynder
11. oktober 2004 - 16:42 #2
Jeg ville sige:
SELECT modules.* FROM Modules
INNER JOIN module_group ON module_group.moduleId = modules.id
INNER JOIN group_user ON module_group.groupID = group_user.groupId
WHERE group_user.userId = 2

Hvad giver det?
Avatar billede moejensen Nybegynder
11. oktober 2004 - 17:52 #3
arnes forslag komme ikke med noget resultat :-(

anhansens fejler og skriver Unknown table 'modules' - hvilket undre mig at tabellen findes.
Avatar billede anhansen Nybegynder
11. oktober 2004 - 18:10 #4
måske fordi jeg har skrevet med stort det ene sted... Prøv med:
SELECT modules.* FROM modules
INNER JOIN module_group ON module_group.moduleId = modules.id
INNER JOIN group_user ON module_group.groupID = group_user.groupId
WHERE group_user.userId = 2

Mener nu ikke sql plejer at være case sensitive - men måske acces..
Avatar billede moejensen Nybegynder
11. oktober 2004 - 18:15 #5
Så er den der sørme :-)

det er mySQL jeg bruger, men jeg bruger bare nogle gange access til at lave forespørgsler i, det er ofte lidt nemmere :-)

tak for hjælpen
Avatar billede anhansen Nybegynder
11. oktober 2004 - 18:18 #6
Ok... Det var så lidt... Kommer lige med et svar...
Avatar billede anhansen Nybegynder
11. oktober 2004 - 18:19 #7
Det er altid en god ide at holde sine navne casesensitive.. Selvom det ikke er nødvendigt.. dels for overblik og dels for i sådan en situation som dette hvor man tror det ikke gør noget... men det gør det.. :-)
Avatar billede moejensen Nybegynder
11. oktober 2004 - 18:23 #8
jeg kan kun give dig ret, jeg er heller ikke helt stolt af min navngivning, men det gik lidt stærkt :(
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