webForumDet fria alternativet

Räkna antalet relationer?

Databaser & SQL

6 svar · 376 visningar · startad av Bosse168

Medlem sedan nov. 20031 018 inlägg
Frågan#1

Jag skulle vilja räkna ut hur många relationer som mina kvinliga användare har och undrar hur en sådan SQL-sats skulle se ut.

har en tabell som heter kompis där jag sparar in samma id som användaren har i tabellen members

Någon som vet hur SQL-satsen skulle se ut?

Medlem sedan juni 200032 967 inlägg
#2

Något sånt här kanske:

SELECT ID, användarnamn, count(*) FROM Members INNER JOIN Kompis ON Members.ID = Kompis.kompisID WHERE Members.Kon='f' GROUP BY ID, användarnamn

Men jag gissar lite hur tabellerna ser ut...

Medlem sedan nov. 20031 018 inlägg
#3

Får bara fram 1 relation när jag använder SQL-satsen:

SQL="SELECT kompis.namn, username, count(*) AS antal FROM members INNER JOIN kompis ON members.username = kompis.namn WHERE members.kon='Tjej' GROUP BY kompis.id, username"
Medlem sedan juni 200032 967 inlägg
#4
  1. varför hämtar du både kompis.namn och username?
  2. Varför grupperar du på fält som du inte har med i SELECT?
Medlem sedan dec. 200012 464 inlägg
#5
SQL="SELECT username, count(*) AS antal FROM members INNER JOIN kompis ON members.username = kompis.namn WHERE members.kon='Tjej' GROUP BY username"
Medlem sedan nov. 20031 018 inlägg
#6

funkar men sidan blir jätte seg när jag kör den SQL-satsen.

Medlem sedan dec. 1999707 inlägg
#7

Vad har du för nycklar och index på tabellerna?
Om inte members.username är PK så bör du lägga index på det fältet. Även kompis.namn bör och members.kon kan du med fördel lägga ett index på.

247 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
120 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)