webForumDet fria alternativet

Jämföra två tabeller?

ASP

4 svar · 226 visningar · startad av Quid

Medlem sedan juni 20006 022 inlägg
Frågan#1

Jag tänkte göra en ny funktion till min figursida, använderna ska kunna söka fram de figurer som det inte redan har röstat på.

Jag har en tabell som innehåller figurerna: figures
id, figur, kategori, timmar, namn och bild

och en som innehåller alla rösterna: votes
id, figurid, namn och betyg

Så jag vill helt enkelt plocka ut alla poster ur figures som användaren inte redan har röstat på, fast jag vet inte hur det skulle kunna gå till :)

Några tips?

Medlem sedan juni 200032 967 inlägg
#2

Någonting sånt här kan SQL-frågan tänkas se ut:

SELECT * FROM figures WHERE ID NOT IN (SELECT DISTINCT figurid FROM votes WHERE namn ='Pelle Plutt')

Mvh,

Medlem sedan juni 20006 022 inlägg
#3

I dagsläget så ser sökfunktionen ut så här:

IF Request.QueryString("sökord") = "*" THEN
	name = "WHERE LEN(name) > 0"
ELSE
	name = "WHERE name LIKE '%"& Request.QueryString("sökord") &"%'"
END IF

IF Request.QueryString("ordna") = "betyg" THEN
	order = "(grade / votes) DESC"
END IF

IF Request.QueryString("ordna") = "namn" THEN
	order = "name ASC"
END IF 

IF Request.QueryString("ordna") = "senaste" THEN
	order = "id DESC"
END IF

IF Request.QueryString("kategori") = "Alla" THEN
	genre = ""
ELSE
	genre = "AND genre = '"& Request.QueryString("kategori") &"'"
END IF

IF Request.QueryString("anv") = "Alla" THEN
	anv = ""
ELSE
	anv = "AND owner = '"& Request.QueryString("anv") &"'"
END IF

SQL2 = "SELECT * FROM figures "& name & genre & anv & before &" ORDER BY "& order &""
'response.write SQL2
Set figurer = DB.Execute(SQL2)

Har testat lite att försöka få till det men lyckas inte riktigt, någon snäll person där ute som kan få in funktion i mitt script? :)

Formuläret och det andra kan ni se här:
http://quid.d2g.com/figurer/index.asp?visa=sök&meny=figurer

Tack på förhand.

Medlem sedan dec. 200012 464 inlägg
#4

Dina frågor stämmer ju inte med din tabellbeskrivning. Vad är owner,anv och name?

jag förutsätter att du har namnet på den aktuelle användared lagrad i variabeln current_user

query = "select * from figurs where id not in " & _
"(select figurid from votes where name = '" & current_user & "') "

IF Request.QueryString("sökord") <> "*" THEN
	query = query & "and name LIKE '%"& Request.QueryString("sökord") &"%'"
END IF

IF Request.QueryString("kategori") <> "Alla" THEN
	query = query &  " AND genre = '"& Request.QueryString("kategori") &"'"
END IF

IF Request.QueryString("anv") <> "Alla" THEN
	query = query & " AND owner = '"& Request.QueryString("anv") &"'"
END IF

IF Request.QueryString("ordna") = "betyg" THEN
	query = query & " (grade / votes) DESC"
elseIF Request.QueryString("ordna") = "namn" THEN
	query = query &  " name ASC"
ElseIF Request.QueryString("ordna") = "senaste" THEN
	query = query & " id DESC"
END IF

Set figurer = DB.Execute(query)
Medlem sedan juni 20006 022 inlägg
#5

Tusen tack, fick ändra lite för att det skulle funka med det var ju mitt eget fel eftersom jag hade givit er missinformation.

Nu funkar det iaf.

Tackelitack.

258 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)