webForumDet fria alternativet
Logga in / Bli medlem

Syntaxfel på JOIN, men funkar i Mysql

Databaser & SQL

2 svar · 194 visningar · startad av Pace

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

Access driver, Syntaxfel i JOIN-operation:

SELECT t.T_TopicClosed, t.Forum_ID, t.Topic_ID, t.T_subject, t.T_NoOfRead, t.T_Replies, t.T_Last_Post, t.T_MsgIcon, m.M_Name, t.T_OldForum, f.F_Name
FROM PaceBoard_Members AS m, PaceBoard_Forums AS f
INNER JOIN PaceBoard_Topics AS t ON m.Member_ID = t.T_Originator

Vad är felet?

[r] Gjorde den lite mer överskådlig:

SELECT t.T_TopicClosed
FROM PaceBoard_Members AS m, PaceBoard_Forums AS f
INNER JOIN PaceBoard_Topics AS t ON m.Member_ID = t.T_Originator
Medlem sedan juni 20019 024 inlägg
#2

Hmmm, allt som behövdes var att byta plats på _Members & _Forums i FROM-listan. :l

...FROM aceBoard_Forums AS f, PaceBoard_Members AS m
INNER JOIN PaceBoard_Topics AS t ON m.Member_ID = t.T_Originator

Är det så att det första tabellen i FROM-listan är den som "joinas" med _Topics?

Medlem sedan dec. 200012 464 inlägg
#3

Är det så att det första tabellen i FROM-listan är den som "joinas" med _Topics?

Nej inte enligt sql-standard. A,B är en förkortning av

A cross join B

så om du skriver inner join efteråt så joinar du med resultatet av den cross joinen. I en cross join så har ordningen mellan tabellerna ingen betydelse. Så det är Access som har lite egenheter för sig.

276 ms totalt · 4 externa anrop · v20260731065814-full.05830320
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
144 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)