webForumDet fria alternativet
Logga in / Bli medlem

Syntax error på Inner Join

Databaser & SQL

9 svar · 212 visningar · startad av Pace

Medlem sedan juni 20019 024 inlägg
Frågan#1

Får detta felet, funkar annars utmärkt i Access.

[TCX][MyODBC]You have an error in your SQL syntax near '(PaceBoard_Categorys INNER JOIN PaceBoard_Forums ON PaceBoard_Categorys.Cat_ID =' at line 1
		' Hämta kategorier, forum, moderatorer etc.
		SQL = "SELECT PaceBoard_Categorys.Cat_ID, PaceBoard_Categorys.Cat_Name," & _
			" PaceBoard_Forums.Forum_ID, PaceBoard_Forums.F_Name," & _
			" PaceBoard_Forums.F_Description, PaceBoard_Forums.F_Cat," & _
			" PaceBoard_Forums.F_Threads, PaceBoard_Forums.F_Posts," & _
			" PaceBoard_Forums.F_Last_Post, PaceBoard_Forums.F_Moderator," & _
			" PaceBoard_Members.M_Name" & _
			" FROM PaceBoard_Members INNER JOIN (PaceBoard_Categorys" & _
			" INNER JOIN PaceBoard_Forums" & _
			" ON PaceBoard_Categorys.Cat_ID = PaceBoard_Forums.F_Cat)" & _
			" ON PaceBoard_Members.Member_id = PaceBoard_Forums.F_Moderator" & _
			" ORDER BY PaceBoard_Categorys.Cat_ID ASC, PaceBoard_Forums.F_Name ASC"
Medlem sedan juni 20008 205 inlägg
#2

Ta bort paranteserna runt join-villkoret...

Medlem sedan juni 20019 024 inlägg
#3

Hmmm, då får jag

TCX][MyODBC]You have an error in your SQL syntax near 'INNER JOIN PaceBoard_Forums ON PaceBoard_Categorys.Cat_ID = PaceBoard_Forums.F_C' at line 1
Medlem sedan feb. 20012 412 inlägg
#4

Hej!

Skriv ut sql-frågan med response.write så vi får se :)

mvh Jörgen

Medlem sedan juni 20019 024 inlägg
#5

Den är ju exakt samma eftersom jag inte har några variabler i den.

Medlem sedan juni 20008 205 inlägg
#6

OK... jag skulle ha gjort då här:

SELECT
	PaceBoard_Categorys.Cat_ID, PaceBoard_Categorys.Cat_Name,
	PaceBoard_Forums.Forum_ID, PaceBoard_Forums.F_Name,
	PaceBoard_Forums.F_Description, PaceBoard_Forums.F_Cat,
	PaceBoard_Forums.F_Threads, PaceBoard_Forums.F_Posts,
	PaceBoard_Forums.F_Last_Post, PaceBoard_Forums.F_Moderator,
	PaceBoard_Members.M_Name
FROM
	PaceBoard_Members
WHERE
	PaceBoard_Categorys.Cat_ID = PaceBoard_Forums.F_Cat
	AND PaceBoard_Members.Member_id = PaceBoard_Forums.F_Moderator
ORDER BY PaceBoard_Categorys.Cat_ID ASC, PaceBoard_Forums.F_Name ASC

Jag har aldrig riktigt förstått varför man använder sig av INNER JOIN-syntaxen på det där viset, när man kan använda ett betydligt mindre fjantigt och mycket enklare sätt som funkar likadant ;)
F.ö. heter "category" i plural "categories", inte "categorys" :p

Medlem sedan juni 20019 024 inlägg
#7

F.ö. heter "category" i plural "categories", inte "categorys"

Jag vet mycket väl att det heter categories. Likaså så heter det replies och inte replys. Anledningen till det är att de inte hade S i slutet från början, så istället för att krångla till det så brydde jag mig inte om att ändra det.

Medlem sedan juni 20019 024 inlägg
#8

Jag försökte mig på att använda WHERE fält1 = fält2 osv från början, men för mig gick det inget vidare.

Nu fick jag följande fel istället. :l

[TCX][MyODBC]Unknown table 'PaceBoard_Categorys' in field list
Medlem sedan juni 20008 205 inlägg
#9

Fixa till FROM-listan så att den innehåller alla tabellerna man joxar med.

Medlem sedan juni 20019 024 inlägg
#10

Oj, det var visst jag som gjorde fel där. Hade på något vis råkat pillat bort det blåmarkerade:

FROM
PaceBoard_Forums, PaceBoard_Members, PaceBoard_Categorys
WHERE
PaceBoard_Categorys.Cat_ID = PaceBoard_Forums.F_Cat
AND PaceBoard_Members.Member_id = PaceBoard_Forums.F_

Tackar spango! :)

263 ms totalt · 4 externa anrop · v20260731065814-full.5386d3bf
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)