webForumDet fria alternativet

Det här med inner join...

5 svar · 351 visningar · startad av l-boy

l-boyMedlem sedan juli 2003221 inlägg
#1

Inner join måste jag lära mig men söker jag här i forumet är det inte helt solklart hur jag skall göra tycker jag. Har tre olika tabeller:

players: id | name
teams: id | name
members : id | teamid | playerid

ja, ni fattar.

Vill på ett så enkelt sätt som möjligt lista t.ex alla positioner i members och hämta in både namnet på laget och namnet på spelaren. Hur skall det se ut?

Är van vid att köra något i stil med:

Set RecSet = Connect.Execute ("Select * members")
Och sen vid utskrift:
RecSet("id") | ... sen får jag köra ett nytt anrop för att hitta namnet på t.ex teamID ... och ett till anrop för att hitta namnet på playerid ...

Antar att det är en inner join jag söker? Hur skall en snygg lösning se ut?

@ndersMedlem sedan juni 200032 969 inlägg
#2

Jag är inte säker på att jag förstår hur du menar att players hänger ihop med members, men...

SELECT * FROM members
INNER JOIN teams ON members.teamID = teams.id
INNER JOIN players ON members.userid = players.id

Jag passar också på att tipsa om SQL-forumet, som är rätt ställe för frågor om SQL.

l-boyMedlem sedan juli 2003221 inlägg
#3

Nä det förstår jag för jag blandade lite hej vilt med både player och user ;)

LarsGMedlem sedan dec. 200012 464 inlägg
#4

Flyttas från ASP

l-boyMedlem sedan juli 2003221 inlägg
#5

Och så den dumma följdfrågan:

Vart hämtar jag ut namnet på spelaren t.ex? RecSet("xxx") nånting?

Peter SMedlem sedan dec. 20025 483 inlägg
#6

Det bästa är väl att hämta ut exakt de fält du är intresserad av

SELECT teams.name, teams.city, players.position FROM members
INNER JOIN teams ON members.teamID = teams.id
INNER JOIN players ON members.userid = players.id

och sedan

recset("teams.name")
125 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)