Avatar billede axkris Nybegynder
18. august 2004 - 19:52 Der er 8 kommentarer og
3 løsninger

Avanceret join

Hej

Jeg skal have lavet disse 2 recordset om til 1 recordset, altså så oplysningerne hentes i et hug:

strSQL = "SELECT CAT_ID FROM FORUM_CATEGORY INNER JOIN FORUM_GROUPS ON FORUM_CATEGORY.CAT_ID = FORUM_GROUPS.GROUP_CATID WHERE FORUM_GROUPS.GROUP_ID = 6 AND FORUM_CATEGORY.CAT_ID <> 41"
            set rsLetterbox1 = dataConn.execute(strSQL)
   
            do while not (rsLetterbox1.bof or rsLetterbox1.eof)
                strSQL = "SELECT FORUM_FORUM.FORUM_ID FROM FORUM_FORUM INNER JOIN FORUM_MODERATOR ON FORUM_FORUM.FORUM_ID = FORUM_MODERATOR.FORUM_ID WHERE FORUM_MODERATOR.MEMBER_ID = " & RS("Member_ID") & " AND FORUM_FORUM.F_STATUS = 1 AND FORUM_FORUM.CAT_ID = " & rsLetterbox1("CAT_ID")
                set rsLetterbox2 = dataConn.execute(strSQL)
                if not (rsLetterbox2.bof or rsLetterbox2.eof) then
                    strGoto = "/forum/forum.asp?FORUM_ID=" & rsLetterbox2("FORUM_ID")
                    rsLetterbox1.close
                    rsLetterbox2.close
                    exit do
                end if
               
                rsLetterbox1.movenext
            loop
Avatar billede juggalo Nybegynder
18. august 2004 - 19:58 #1
du kan lave et view;

SELECT FORUM_FORUM.FORUM_ID FROM FORUM_FORUM INNER JOIN FORUM_MODERATOR ON FORUM_FORUM.FORUM_ID = FORUM_MODERATOR.FORUM_ID INNER JOIN
(SELECT CAT_ID FROM FORUM_CATEGORY INNER JOIN FORUM_GROUPS ON FORUM_CATEGORY.CAT_ID = FORUM_GROUPS.GROUP_CATID WHERE FORUM_GROUPS.GROUP_ID = 6 AND FORUM_CATEGORY.CAT_ID <> 41) vView ON FORUM_FORUM.CAT_ID = vView.CAT_ID WHERE FORUM_MODERATOR.MEMBER_ID = " & RS("Member_ID") & " AND FORUM_FORUM.F_STATUS = 1
Avatar billede axkris Nybegynder
18. august 2004 - 20:08 #2
Kan desværre ikke lave subselects... findes der en anden løsning?
Avatar billede juggalo Nybegynder
18. august 2004 - 20:14 #3
det er ikke et subselect - det er et view =)
Avatar billede axkris Nybegynder
18. august 2004 - 20:16 #4
Microsoft OLE DB Provider for ODBC Drivers (0x80040E09)
[TCX][MyODBC]You have an error in your SQL syntax near '(SELECT CAT_ID FROM FORUM_CATEGORY INNER JOIN FORUM_GROUPS ON FORUM_CATEGORY.CAT' at line 1
Avatar billede axkris Nybegynder
18. august 2004 - 20:18 #5
Må gå til erkendelse... jeg anvender mysql... men har stillet det i et access-forum, fordi man aldrig får svar i mysql-forumet.....
Avatar billede juggalo Nybegynder
18. august 2004 - 20:19 #6
LOL - ja så kan jeg ikke hjælpe dig - har kun forstand på MSSQL
Avatar billede eagleeye Praktikant
18. august 2004 - 23:43 #7
Prøv sådan her:


strSQL = "SELECT FORUM_FORUM.FORUM_ID FROM (FORUM_FORUM INNER JOIN FORUM_MODERATOR ON FORUM_FORUM.FORUM_ID = FORUM_MODERATOR.FORUM_ID) INNER JOIN (FORUM_GROUPS INNER JOIN FORUM_CATEGORY ON FORUM_GROUPS.GROUP_CATID = FORUM_CATEGORY.CAT_ID) ON FORUM_FORUM.CAT_ID = FORUM_CATEGORY.CAT_ID WHERE  FORUM_GROUPS.GROUP_ID = 6 AND FORUM_CATEGORY.CAT_ID <> 41 AND FORUM_MODERATOR.MEMBER_ID = " & RS("Member_ID") & " AND FORUM_FORUM.F_STATUS = 1;"
Avatar billede axkris Nybegynder
19. august 2004 - 09:47 #8
Microsoft OLE DB Provider for ODBC Drivers (0x80040E09)
[TCX][MyODBC]You have an error in your SQL syntax near '(FORUM_GROUPS INNER JOIN FORUM_CATEGORY ON FORUM_GROUPS.GROUP_CATID = FORUM_CATE' at line 1
Avatar billede trer Nybegynder
19. august 2004 - 09:53 #9
jeg har naturligvis ikke checket noget - men prøv lige at lege med den her...

SELECT FORUM_FORUM.FORUM_ID
FROM FORUM_FORUM INNER JOIN FORUM_MODERATOR
ON FORUM_FORUM.FORUM_ID = FORUM_MODERATOR.FORUM_ID
INNER JOIN FORUM_CATEGORY ON FORUM_FORUM.CAT_ID = FORUM_CATEGORY.CAT_ID INNER JOIN FORUM_GROUPS ON FORUM_CATEGORY.CAT_ID = FORUM_GROUPS.GROUP_CATID WHERE FORUM_GROUPS.GROUP_ID = 6 AND FORUM_CATEGORY.CAT_ID <> 41
WHERE FORUM_MODERATOR.MEMBER_ID = " & RS("Member_ID") & "
AND FORUM_FORUM.F_STATUS = 1
Avatar billede axkris Nybegynder
19. august 2004 - 10:03 #10
Hej trer

Det virker :-) Skulle bare lige bytte "where" ud med "and" ... du havde 2 where i sætningen ;)

Tryk svar :-)
Avatar billede trer Nybegynder
19. august 2004 - 16:22 #11
Hmm... ups, dobbelt where, men et svar herfra.

God fornøjelse
Troels
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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