webForumDet fria alternativet

Join problem

8 svar · 270 visningar · startad av jboy_87

jboy_87Medlem sedan aug. 20011 099 inlägg
#1

Hejsan!
Undra hur man går till väga om man vill joina Besokare1,Besokare2,Besokare3 osv... med Anvandarnamn posterna i medlem tabellen? hur skriver man ut dem?

medlem tabellen:
ID int(11)
Anvandarnamn varchar(15) == "jboy_87" <-- flera poster under
Kon varchar(6)
Fodd varchar(10)

Nyfikna tabellen:

ID int(11)
Till varchar(15)
Besokare1 varchar(35) === "jboy_87"
Besokare2 varchar(35) === "hmm"
Besokare3 varchar(35) === "Join"
Besokare4 varchar(35) === "jöns"
Besokare5 varchar(35)
Besokare6 varchar(35)
Besokare7 varchar(35)
Besokare8 varchar(35)
Besokare9 varchar(35)
Besokare10 varchar(35)

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Man ändrar datamodellen. Ha en kolumn i nyfikna tabellen. Om det finss flera nyfikna, lagra flera poster. Sen så är det en helt vanlig join.

jboy_87Medlem sedan aug. 20011 099 inlägg
#3

det e det jag inte vill göra! vill köra update istället för insert dessutom så blir det fel med indexeringen när man raderar nån besökare och så blir posterna över 100 tusen!

LarsGMedlem sedan dec. 200012 464 inlägg
#4

Om du har en bra indexering så är det inget problem att ha mer än 100000 poster i en tabell.

dessutom så blir det fel med indexeringen när man raderar nån besökare

Hur då?

jboy_87Medlem sedan aug. 20011 099 inlägg
#5

då blir det 1,2,3,4,5,8,10,19... I ID kolumnen om jag raderar nån post!
Då måste jag åsterställa index för ID!

LarsGMedlem sedan dec. 200012 464 inlägg
#6

Då måste jag åsterställa index för ID!

Varför det? Du skall aldrig bygga någon logik på att auto_increment ger sekventiella värden.

jboy_87Medlem sedan aug. 20011 099 inlägg
#7

så man måste inte återställa auto_increment för att få bättre prestanda?

LarsGMedlem sedan dec. 200012 464 inlägg
#8

Nej, absolut inte.

jboy_87Medlem sedan aug. 20011 099 inlägg
#9

okidoki jag körde det här innan! trodde det skulle gå snabbare om man återställde index på ID:

if (isset($_GET['nyfikna'])) {
mysql_query("ALTER TABLE nyfikna DROP ID");
mysql_query("ALTER TABLE nyfikna ADD ID INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST;");
}

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