webForumDet fria alternativet

hämta från tre tabeller

5 svar · 193 visningar · startad av ampy

ampyMedlem sedan feb. 20011 498 inlägg
#1

Jag har en MySQL-databas där jag vill hämta från tre tabeller samtidigt. Har kommit så här långt med min sql-fråga:

	sql = "select fp.id_trad, fp.user_id, fp.datum, ft.subject, ft.rum, m.username " & _
	"From forum_posts fp inner join forum_topics ft on fp.id_trad = ft.id_trad " & _
	"left outer join members m on fp.user_id = m.id " & _
	"where ft.rum = 'allmant' AND ft.id_trad = fp.id_trad " & _
	"order by fp.datum desc"

På den koden får jag detta felmeddelande:

Microsoft OLE DB Provider for ODBC Drivers fel '80040e0c' 

Det angavs inte någon kommandotext för kommandoobjektet

Varför får jag det felet?

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Det beror inte på sql-satsen utan det är ett problem i din ASP-kod.

Visa den bit där du gör open på ditt recordset.

ampyMedlem sedan feb. 20011 498 inlägg
#3

Du hade rätt. Hade råkat komma åt en extratangent som jag inte märkte. :r

Men nu säger den att den inte hittar någon post. Kan ju förklara vad jag vill göra:

Har tre tabeller:

forum_topics
id_trad
subject
user_id
datum
rum
locked
senasteinlagg
ampymail
last
svar

forum_posts
id
id_trad
user_id
message
datum

members
id
username

Nu vill jag hämta den senaste posten ur forum_posts och sen hämta posten ur forum_topics där trad_id i forum_posts är lika med trad_id i forum_topics. Sen vill jag hämta posten ur members där user_id i forum_posts är lika med id i members.

Kanske lite krånglig text men hoppas du förstår ändå :l

LarsGMedlem sedan dec. 200012 464 inlägg
#4

Jag ser inget konstigt i frågan. Det är bara en detalj att du har med ett villkor i where som du redan har i on

sql = "select fp.id_trad, fp.user_id, fp.datum, ft.subject, ft.rum, m.username " & _
	"From forum_posts fp inner join forum_topics ft on fp.id_trad = ft.id_trad " & _
	"left outer join members m on fp.user_id = m.id " & _
	"where ft.rum = 'allmant' " & _
	"order by fp.datum desc"

Det har ingen betydelse för resultatet. Det finns helt enklet inga poster som upffyller villkoret. Du får testa och ta bort villkoret på rum t.ex.

ampyMedlem sedan feb. 20011 498 inlägg
#5

Den säger att den inte hittar någon post även om jag tar bort villkoret för rum.

Redigerat:

Kollade i databasen och märkte att tabellen var tom, fattar inte hur den har blivit det men nu funkar det iaf. :)

Men har en till fråga. Vad händer om det finns två kolumner som heter likadant i olika tabeller och man skriver ut den på sidan sen. Från vilken tabell hämtar den ifrån?

LarsGMedlem sedan dec. 200012 464 inlägg
#6

Den som kommer först i select-listan. Du kan alltid döpa om kolumnerna

  select a.aleb as aaleb, b.aleb as baleb from a,b

eller så kan du använda ordningsnummer i recordsetet.

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