Jag håller på att skapar ett lite mer avancerat forum då jag har lite tid över.
däremot så har jag ett problem.
Denna sql fråga fungerar fint.
Link = "SELECT forum.*, member.m_signature FROM forum"&_
" inner join member on forum.f_moderators = member.id"&_
" Order by forum.ID Desc"
Däremot när jag försöker lägga till en inner join till
Link = "SELECT forum.*, member.m_signature, Count(threads.t_forum) AS antal FROM forum"&_
" inner join member on forum.f_moderators = member.id"&_
" inner join threads on forum.id = threads.t_forum"&_
" Order by forum.ID Desc"
För att räkna hur många inlägg det finns så fungerar det inte alls
får ett 500.100 fel
felsvar:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'forum.f_moderators = member.id inner join threads on forum.id = threads.t_forum'.
Sen så är jag lite nyfiken på left, right och inner join vad är skillnaderna i dem?
Du kan inte blanda count och vanliga kolumner utan att ha en group by.
Jag skulle nog skriva den frågan som
Link = "SELECT f.*, member.m_signature,(select Count(*)
from threads where t_forum = f.forum_id ) AS antal FROM forum f"&_
" inner join member on f.f_moderators = member.id"&_
" Order by f.ID Desc"
Annars så är access speciellt om man vill ha flera inner join, du måste ha med lite parenteser för att det lilla livet skall förstå
select * from (a inner join b on a.id = b.id) inner join c on b.id = c.id
Jag har skrivit ett längre inlägg om olika joins i SQL-forumet, så om du gör en sökning där på tex natural join så borde du hitta något.
Link = "SELECT forum.*, member.m_signature,(select Count(*) from threads where t_forum = forum.forum_id ) AS antal FROM forum"&_
" inner join member on forum.f_moderators = member.id"&_
" Order by forum.ID Desc"
(obs modifierad lite)
så får jag följande felmeddelande:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
Vad jag förstår så är detta ett ganska generellt felmeddelande, är det någon fnutt som jag glömt eller vad kan detta bero på?