webForumDet fria alternativet

INNER JOIN i Access (konvertering av existerande SQL-sträng)

4 svar · 366 visningar · startad av Grillcliff

GrillcliffMedlem sedan sep. 200032 inlägg
#1

Hej,

Jag vet inte vad som är felet med följande kod, men jag får Too few parameters. Expected 1.

<% Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & strPath
Set RS = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT t.topic, p.topicid, t.datum, MAX(p.datum) AS last_post FROM forum_topics t INNER JOIN forum_posts p ON p.topicid = t.id GROUP BY t.id, t.topic, p.topicid, t.datum ORDER BY last_post"
RS.Open SQL, Conn, 1, 3 %>

Detta har tidigare körts med MySQL och nu tänkte jag använda samma funktion med en Access-databas.

LarsGMedlem sedan dec. 200012 464 inlägg
#2

En brist i Access

 SQL = "SELECT t.topic, p.topicid, t.datum, MAX(p.datum) AS last_post FROM forum_topics t INNER JOIN forum_posts p ON p.topicid = t.id GROUP BY t.id, t.topic, p.topicid, t.datum ORDER BY 4"

Varför har du med t.id i group by men inte i select-listan? (Bara nyfiken.)

GrillcliffMedlem sedan sep. 200032 inlägg
#3

Okej, det där var ett klart intressant problem. Givetvis funkade det, men jag förstår inte logiken ;-)

t.id-grejen var nog mest slarv efter att jag suttit och försökt fixa det på egen hand genom att strippa ner strängen så mycket som möjligt.

Tack för hjälpen!

Engine^Medlem sedan dec. 20003 887 inlägg
#4

last_post är kolumn nummer 4 i din SELECT och Access klarar inte av att använda kolumnalias i ORDER BY.

GrillcliffMedlem sedan sep. 200032 inlägg
#5

All right :)

126 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)