webForumDet fria alternativet

SQL-fråga

11 svar · 323 visningar · startad av Jörgen HP

Jörgen HPMedlem sedan feb. 20012 412 inlägg
#1

Hej!

Har en SQL-fråga som ser ut enligt följande:

m_strSQL = "SELECT Subject, req_Username, dteDate, " & _
"Svar_dteDate, Inlagg.intForumId, MessId " & _
"FROM Svar " & _
"RIGHT JOIN Inlagg " & _
"on MessId = Svar_MessId " & _
"RIGHT JOIN Profil " & _
"on AnvId = Svar_AnvId " & _
" WHERE Inlagg_AnvId = "& cint(Request.querystring("AnvId")) &"" & _
" OR Svar_AnvId = "& cint(Request.querystring("AnvId")) &"" & _
" GROUP BY MessId ORDER BY dteDate DESC"

Problemet är att den hämtar ibland poster med annat AnvId än det querystringen innehåller, vad kan det bero på?

r: skriver jag ut det blir det:

SELECT Subject, req_Username, dteDate, Svar_dteDate, Inlagg.intForumId, MessId FROM Svar RIGHT JOIN Inlagg on MessId = Svar_MessId RIGHT JOIN Profil on AnvId = Svar_AnvId WHERE Inlagg_AnvId = 2 OR Svar_AnvId = 2 GROUP BY MessId ORDER BY dteDate DESC

mvh Jörgen :)

------------------
Varför bråka när man kan kramas?

[Redigerat av jorgen den 02 nov 2001]

LarsGMedlem sedan dec. 200012 464 inlägg
#2

I vilken tabell finns kolumnen AnvID?

Jag tycker att det ser ut som om du skulle behöva en union egentligen.

------------------
essentitia preter non sans multiplicandum

jorgenMedlem sedan feb. 20012 412 inlägg
#3

Hej!

AnvId finns i tabellen Profil. Jag har aldrig fått union att fungera i Mysql, tyvärr.

Profil: AnvId
Svar: Svar_AnvId
Inlagg: Inlagg_AnvId

r: aldrig stavas aldrig med 2 l

mvh Jörgen :)

------------------
Varför bråka när man kan kramas?

[Redigerat av jorgen den 02 nov 2001]

emissionMedlem sedan dec. 19996 721 inlägg
#4

Hur ser tabellerna ut?

PS.
& "" & är exakt samma sak som &
DS ;)

------------------
/emission
If you see someone without a smiley, give them your colon.

jorgenMedlem sedan feb. 20012 412 inlägg
#5

Hej!

Tabellstruktur:

Inlagg:

MessId int(11)
Subject varchar(100)
dteDate
Inlagg_AnvId int(11)
IntForumId tinyint(2)

Svar:

Svar_Id int(11)
Svar_MessId int(11)
IntForumId tinyint(2)
Svar_AnvId int(11)
Svar_dteDate

Profil:

AnvId int(11)
req_Username varchar(50)

mvh Jörgen :)

------------------
Varför bråka när man kan kramas?

LarsGMedlem sedan dec. 200012 464 inlägg
#6

T.ex. om du i inlagg hittar en post som matchar inlagg_anvid = 2 så joinar du det mot messid i svar-tabellen och sedan använder du svar_anvid för att joina mot profil.
Du får då profilinfo för alla som svarat på inlägget istället.

Det är därför jag är ute efter att du behöver två frågor.

------------------
essentitia preter non sans multiplicandum

jorgenMedlem sedan feb. 20012 412 inlägg
#7

Hej!

Så du menar att jag gör en join mellan tabellerna Inlagg och Svar.

Sedan gör jag en fråga till som hämtar ut req_Username för den användaren som har ett AnvId som övernsstämmer med request.querystring("AnvId")?

r: hela funktionen går ut på att lista alla inlägg som en viss medlem har deltagit i.

mvh Jörgen :)

------------------
Varför bråka när man kan kramas?

[Redigerat av jorgen den 02 nov 2001]

jorgenMedlem sedan feb. 20012 412 inlägg
#8

Hej igen!

Har du någon aning om ifall union stöds av mysql?

mvh Jörgen :)

------------------
Varför bråka när man kan kramas?

LarsGMedlem sedan dec. 200012 464 inlägg
#9

Jo, det är två olika mängder du vill komma åt.

Nej, union finns inte i mysql.

------------------
essentitia preter non sans multiplicandum

[Redigerat av LarsG den 02 nov 2001]

jorgenMedlem sedan feb. 20012 412 inlägg
#10

Tack LarsG, jag får köra två frågor istället :(

mvh Jörgen :)

------------------
Varför bråka när man kan kramas?

LarsGMedlem sedan dec. 200012 464 inlägg
#11

Det känns som om det är något skevt med din datamodell.

Varför skiljer du på inlägg och svar på det sättet?

Räcker det inte med att ha en subject-tabell där man sparar titel/ämne och till vilket forum det hör och sedan har man en tabell för alla inlägg där man har ett subjectid och sekvensnummer som primärnyckel. I så fall behöver du enbart söka i inläggstabellen i detta fall.

------------------
essentitia preter non sans multiplicandum

spangoMedlem sedan juni 20008 205 inlägg
#12

Nej, union finns inte i mysql.

Känner mig tvungen att påpeka att det finns i mysql 4.0, och att man om ett år antagligen inte kommer kunna säga "nej, mysql stöder inte foreign key constraints, stored procedures eller subqueries". :)
http://www.mysql.com/products/mysql-4.0/index.html

------------------
You can be a coward for a few minutes, or dead forever. /Rincewind

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