Frågan 22 jan. 2003 09:57 #1 Följande SQL-fråga fungerar med Access men inte med mySQL, hur ska jag skriva om den för att det ska fungera???
strSQL = "SELECT TOP 1 tblThread.Thread_ID, tblThread.Message_date, tblThread.Topic_ID, tblAuthor.Username, tblAuthor.Author_ID "
strSQL = strSQL & "FROM (tblForum INNER JOIN tblTopic ON tblForum.Forum_ID = tblTopic.Forum_ID) INNER JOIN (tblAuthor INNER JOIN tblThread ON tblAuthor.Author_ID = tblThread.Author_ID) ON tblTopic.Topic_ID = tblThread.Topic_ID "
strSQL = strSQL & "WHERE tblTopic.Forum_ID = " & intForumID & " "
strSQL = strSQL & "ORDER BY tblThread.Message_date DESC;"
Gick ej att redigera inlägget men här är en enklare kod:
strSQL = "SELECT TOP 1 tblThread.Thread_ID,
tblThread.Message_date, tblThread.Topic_ID,
tblAuthor.Username, tblAuthor.Author_ID "
strSQL = strSQL & "FROM (tblForum INNER JOIN tblTopic ON
tblForum.Forum_ID = tblTopic.Forum_ID) INNER JOIN (tblAuthor INNER JOIN tblThread ON
tblAuthor.Author_ID = tblThread.Author_ID) ON tblTopic.Topic_ID = tblThread.Topic_ID "
strSQL = strSQL & "WHERE tblTopic.Forum_ID = " & intForumID & " "
strSQL = strSQL & "ORDER BY tblThread.Message_date DESC;"
L LarsG Medlem sedan dec. 2000 12 464 inlägg SELECT tblThread.Thread_ID, tblThread.Message_date,
tblThread.Topic_ID, tblAuthor.Username, tblAuthor.Author_ID
FROM tblForum
INNER JOIN tblTopic
ON tblForum.Forum_ID = tblTopic.Forum_ID
INNER JOIN tblAuthor
ON tblAuthor.Author_ID = tblThread.Author_ID
INNER JOIN tblThread
ON tblTopic.Topic_ID = tblThread.Topic_ID
WHERE tblTopic.Forum_ID = 4711
ORDER BY tblThread.Message_date DESC limit 1
Tack LarsG, orkar du med än till?
"Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[TCX][MyODBC]Okänd kolumn 'tblTopic.Forum_ID' i having clause
/Default.asp, line 302
"
strSQL = "SELECT Count(tblThread.Thread_ID) AS Thread_Count "
strSQL = strSQL & "FROM tblTopic INNER JOIN tblThread ON
tblTopic.Topic_ID = tblThread.Topic_ID "
strSQL = strSQL & "GROUP BY tblTopic.Forum_ID "
strSQL = strSQL & "HAVING (((tblTopic.Forum_ID)=" & intForumID & "));"
L LarsG Medlem sedan dec. 2000 12 464 inlägg Det finns ingen anledning att använda having i detta läge. Tvärtom.
strSQL = "SELECT Count(tblThread.Thread_ID) AS Thread_Count "
strSQL = strSQL & "FROM tblTopic INNER JOIN tblThread ON
tblTopic.Topic_ID = tblThread.Topic_ID "
strSQL = strSQL & " where tblTopic.Forum_ID =" & intForumID & " "
strSQL = strSQL & "GROUP BY tblTopic.Forum_ID "
Jag blir förvånad över felmeddelandet dock. Kanske någon begränsning i Mysql att man bara kan använda kolumner som är med i select-listan i having.
Du är en ängel Lars G :)
Nu börjar det fungera!
Svara gärna på mitt PM eller så postar jag mina frågor här om du tycker det är bättre. Har en drös SQL-satser som ej fungerar :(
@nders Medlem sedan juni 2000 32 967 inlägg Posta i SQL-forumet, då det finns fler än LarsG som kan SQL, eller åtminstone kan försöka hjälpa till.
Mvh,
Saken är den att det fungerar med Access dock inte mySQL =) Men okej :)