webForumDet fria alternativet

Söka efter alla inlägg av användare (SQL)

ASP

3 svar · 173 visningar · startad av Pace

Medlem sedan juni 20019 024 inlägg
Frågan#1

Okej, vi skippar dösnackat! ;)

1. Detta är ett forum.
2 Vill söka efter alla inlägg som en användare gjort.
3. Har tre tabeller:
* PaceBoard_Topics - Trådens första inlägg
* PaceBoard_Members - Alla anävndare
* PaceBoard_Replys - Inläggen i en viss tråd
4. Vill söka igenom dessa tre tabeller där både PaceBoard_Topics och PaceBoard_Replys kan innehålla inlägg som använaren gjort.

Har följande kod som söker igenom ett PaceBoard_Topics och _Replys efter en söksträng:

SELECT
PaceBoard_Forums.Forum_ID, PaceBoard_Forums.F_Name, PaceBoard_Topics.Topic_ID,
PaceBoard_Topics.T_Subject, PaceBoard_Topics.T_Last_Post, PaceBoard_Members.M_Name

FROM ((PaceBoard_Forums
LEFT JOIN PaceBoard_Topics ON PaceBoard_Forums.Forum_ID = PaceBoard_Topics.Forum_id)
LEFT JOIN PaceBoard_Replys ON PaceBoard_Topics.Topic_ID = PaceBoard_Replys.Topic_ID)
LEFT JOIN PaceBoard_Members ON PaceBoard_Topics.T_Originator = PaceBoard_Members.Member_ID

WHERE (PaceBoard_Forums.F_Description LIKE '%pace%'
OR PaceBoard_Replys.R_Message LIKE '%pace%'
OR PaceBoard_Topics.T_Message LIKE '%pace%'
OR PaceBoard_Topics.T_Subject LIKE '%pace%')

[Redigerat av Pace den 16 okt 2001]

Medlem sedan dec. 200012 464 inlägg
#2

Gör en fråga som söker i topics och en som söker i replys (replies!) och lägg ihop dessa med en union.

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

Medlem sedan juni 20019 024 inlägg
#3

Okej, ska testa det!

(replies!)

Jo jag vet, men tabellerna hette _Reply och _Topic, men de var ju pluralis inlägg i dem så jag la på ett 'S' slutet. ;)

------------------
"Tål det inte att skämtas om, är det inte värt att ta på allvar."

[Redigerat av Pace den 16 okt 2001]

Medlem sedan juni 20019 024 inlägg
#4

Hmmm, har lite svårigheter, det tycks gå över mitt förstånd.

Om jag söker efter exempelvis "Pace" i sökfältet, hur ska jag få PaceBoard_Members.M_Name = 'pace' att söka efter exempelvis användar ID 7?

SELECT PaceBoard_Forums.Forum_ID, PaceBoard_Forums.F_Name, PaceBoard_Topics.Topic_ID, PaceBoard_Topics.T_Subject, PaceBoard_Topics.T_Last_Post, PaceBoard_Members.M_Name

FROM ((PaceBoard_Forums LEFT JOIN PaceBoard_Topics ON PaceBoard_Forums.Forum_ID = PaceBoard_Topics.Forum_id)
LEFT JOIN PaceBoard_Replys ON PaceBoard_Topics.Topic_ID = PaceBoard_Replys.Topic_ID)
LEFT JOIN PaceBoard_Members ON PaceBoard_Topics.T_Originator = PaceBoard_Members.Member_ID

UNION SELECT PaceBoard_Replys.* FROM (PaceBoard_Replys LEFT JOIN PaceBoard_Topics ON PaceBoard_Replys.Topic_ID = PaceBoard_Topics.Topic_ID)
WHERE PaceBoard_Members.M_Name = 'pace'

------------------
"Tål det inte att skämtas om, är det inte värt att ta på allvar."

266 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
133 ms — ändringar (db)