Vinnaren i pepparkakshustävlingen!
2011-02-23, 19:52
  #1
Medlem
Sopels avatar
Har ett problem med JOIN som jag tycker borde vara ganska enkelt men får inte till det

Har två tabeller,

Tabellen Lag innehåller olika hockeylag med följande struktur:

ID--Stad--------Suffix
1---Skellefteå--AIK
2---Timrå-------IK

Etc.

I andra tabellen finns matcher, exempelvis:

ID--Lag1--------Lag2
1---1------------2

jag vill nu skriva ut matchtabellen, men hämta lag + suffix från lagtabellen så att det blir

ID--Lag1--------------Lag2
1---Skellefteå AIK---Timrå IK

Hur fasen?
__________________
Senast redigerad av Sopel 2011-02-23 kl. 19:55.
Citera
2011-02-23, 19:59
  #2
Medlem
Förutsatt MySQL

Kod:
SELECT m.id, concat(l1.namn, l1.suffix) as lag1, concat(l2.namn, l2.suffix) as lag2
FROM match m
JOIN lag l1 ON m.lag1id = l1.id
JOIN lag l2 ON m.lag2id = l2.id
ORDER BY m.id
Citera
2011-02-23, 20:04
  #3
Medlem
valter-eggons avatar
select m.id, l1.stad + l1.suffix, l2.stad + l2.suffix from lag l1, lag l2, match m where m.lag1=l1.id and m.lag2=l2.id

Så tror jag.
Citera
2011-02-23, 20:13
  #4
Medlem
Sopels avatar
Matcherna ligger i tabellen
GAMES
där kolumnerna heter team1 och team2

och lagen ligger i tabellen
all_teams
där kolumnerna heter 'city' och 'name'

Är väldigt noob på detta, skulle vara till stor hjälp om ni kunde använda "mina" tabell- och kolumnnamn
Citera
2011-02-23, 21:09
  #5
Medlem
valter-eggons avatar
Jag skulle föreslå att du ändrar kolumnnamnen så att det tydligare framgår att det handlar om främmande nycklar. D.v.s. TEAM1_ID och TEAM2_ID.
I GAMES borde du kanske ha en kolumn som heter MATCH_NO och göra order by g.match_no.

Om vi utgår från Dont_Panic79
Kod:
SELECT g.idconcat(l1.cityl1.name) as lag1concat(l2.cityl2.name) as lag2
FROM games g
JOIN all_teams l1 ON g
.team1 l1.id
JOIN all_teams l2 ON g
.team2 l2.id
ORDER BY g
.id 
Citera
2011-02-23, 21:24
  #6
Medlem
Sopels avatar
Citat:
Ursprungligen postat av valter-eggon
Jag skulle föreslå att du ändrar kolumnnamnen så att det tydligare framgår att det handlar om främmande nycklar. D.v.s. TEAM1_ID och TEAM2_ID.
I GAMES borde du kanske ha en kolumn som heter MATCH_NO och göra order by g.match_no.

Om vi utgår från Dont_Panic79
Kod:
SELECT g.idconcat(l1.cityl1.name) as lag1concat(l2.cityl2.name) as lag2
FROM games g
JOIN all_teams l1 ON g
.team1 l1.id
JOIN all_teams l2 ON g
.team2 l2.id
ORDER BY g
.id 

Tack så hemskt mycket för hjälpen. Det fungerade
Citera
2011-02-23, 21:58
  #7
Medlem
valter-eggons avatar
Citat:
Ursprungligen postat av Sopel
Tack så hemskt mycket för hjälpen. Det fungerade
Varsågod!
Citera
2011-02-23, 22:23
  #8
Moderator
Protons avatar
PHP -> Databaser /Mod
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback