webForumDet fria alternativet

Det här med inner join...

Databaser & SQL

5 svar · 353 visningar · startad av l-boy

Medlem sedan juli 2003221 inlägg
Frågan#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?

Medlem sedan juni 200032 967 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.

Medlem 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 ;)

Medlem sedan dec. 200012 464 inlägg
#4

Flyttas från ASP

Medlem 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?

Medlem 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")
250 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)