webForumDet fria alternativet

Sök innerjoin

11 svar · 332 visningar · startad av voigtann1

voigtann1Medlem sedan juni 20019 519 inlägg
#1
SQL = "select * from topics, Answers where ("
SQL = SQL &    " topics.skribent like '%%" & ord & "%%'"
SQL = SQL & " OR topics.amne like '%%" & ord & "%%'"
SQL = SQL & " OR topics.inlagg like '%%" & ord & "%%'"
SQL = SQL & " OR Answers.inlagg like '%%" & ord & "%%'"
SQL = SQL & " OR Answers.skribent like '%%" & ord & "%%'"
SQL = SQL & ")"
Set recset = Databas.Execute(SQL)

Om vi skapar ett exempel:

Pelle skriver en rubrik som heter "Roliga spel"
och så svarar Per på "roliga spel"

Då vill jag bara att ett sök resultat ska visas om någon söker efter
"PE" (dvs pers och pelles namn)..... detta ska väll inte vara så svårt :D

OveRRidEMedlem sedan feb. 200112 078 inlägg
#2
SQL = "select [b][red]TOP 1[/red][/b] * from topics, Answers where ("
SQL = SQL &    " topics.skribent like '%%" & ord & "%%'"
SQL = SQL & " OR topics.amne like '%%" & ord & "%%'"
SQL = SQL & " OR topics.inlagg like '%%" & ord & "%%'"
SQL = SQL & " OR Answers.inlagg like '%%" & ord & "%%'"
SQL = SQL & " OR Answers.skribent like '%%" & ord & "%%'"
SQL = SQL & ")"
Set recset = Databas.Execute(SQL)
voigtann1Medlem sedan juni 20019 519 inlägg
#3

kommer inte den då bara markera 1 sök resultat..? vill ju ha fler resultat... fast bara 1 svar om det är i ett speciellt inlägg... som forumet här..

voigtann1Medlem sedan juni 20019 519 inlägg
#4

fasen.. den vill inte fungera alls så bra som jag tycker :( den tycks vilja markera alla plus dom som inte ha resultatet ändå...

LarsGMedlem sedan dec. 200012 464 inlägg
#5

Hur är topics och answers relaterade?

Du får nog skriva en union, där den ena frågan söker i topics och den andra i answers.

voigtann1Medlem sedan juni 20019 519 inlägg
#6

answers har en kolum som heter topic_id som e relaterad till ID i topics

cyprysMedlem sedan dec. 20003 563 inlägg
#7

Kanske det heter DISTINCT du är ute efter?
SELECT DISTINCT topic_id FROM ** WHERE osv osv

voigtann1Medlem sedan juni 20019 519 inlägg
#8
SQL = "select DISTINCT id,topic_id FROM topics,Answers where("
SQL = SQL & "topics.skribent like '%%" & ord & "%%'"
SQL = SQL & " OR Answers.skribent like '%%" & ord & "%%'"
SQL = SQL & " OR topics.amne like '%%" & ord & "%%'"
SQL = SQL & " OR topics.inlagg like '%%" & ord & "%%'"
SQL = SQL & " OR Answers.inlagg like '%%" & ord & "%%'"
SQL = SQL & ") "

eller?? får fel meddelanden:
Error Type:
ADODB.Recordset (0x800A0CC1)
Item cannot be found in the collection corresponding to the requested name or ordinal.

LarsGMedlem sedan dec. 200012 464 inlägg
#9
SQL = "select id FROM topics where("
SQL = SQL & "skribent like '%" & ord & "%'"
SQL = SQL & " OR amne like '%" & ord & "%'"
SQL = SQL & " OR inlagg like '%" & ord & "%'"
SQL = SQL & " OR ID  in (select topic_id from answers where " 
SQL = SQL & " inlagg like '%" & ord & "%'"
SQL = SQL & " OR skribent like '%" & ord & "%'"
SQL = SQL & "))"

Det beror på vad du vill ha. Jag förstår inte varför du valde både id och topic_id, det är ju samma värde.

voigtann1Medlem sedan juni 20019 519 inlägg
#10

tackar!

voigtann1Medlem sedan juni 20019 519 inlägg
#11

har ett litet problem nu.. nu om jag ska kunna välja vilket forum man ska söka i tänkte jag mej:

if not forum1 = "all" then
SQL = "select topic_id,forum_id,amne FROM topics where(forum_id = " & forum1 &" and "
SQL = SQL & " skribent like '%" & ord & "%'"
SQL = SQL & " OR amne like '%" & ord & "%'"
SQL = SQL & " OR inlagg like '%" & ord & "%'"
SQL = SQL & " OR topic_id in (select svar_id from answers where" 
SQL = SQL & " inlagg like '%" & ord & "%'"
SQL = SQL & " OR skribent like '%" & ord & "%'"
SQL = SQL & "))"
else
SQL = "select topic_id,forum_id,amne FROM topics where("
SQL = SQL & "skribent like '%" & ord & "%'"
SQL = SQL & " OR amne like '%" & ord & "%'"
SQL = SQL & " OR inlagg like '%" & ord & "%'"
SQL = SQL & " OR topic_id in (select svar_id from answers where " 
SQL = SQL & " inlagg like '%" & ord & "%'"
SQL = SQL & " OR skribent like '%" & ord & "%'"
SQL = SQL & "))"
end if

men det är alltid 1 extra inlägg som kommer med i resultatet...

LarsGMedlem sedan dec. 200012 464 inlägg
#12
SQL = "select topic_id,forum_id,amne FROM topics where forum_id = " & forum1 &" and ("
SQL = SQL & " skribent like '%" & ord & "%'"
SQL = SQL & " OR amne like '%" & ord & "%'"
SQL = SQL & " OR inlagg like '%" & ord & "%'"
SQL = SQL & " OR topic_id in (select svar_id from answers where" 
SQL = SQL & " inlagg like '%" & ord & "%'"
SQL = SQL & " OR skribent like '%" & ord & "%'"
SQL = SQL & "))"

Flyttade på parentesen.

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