06. marts 2011 - 15:40Der er
7 kommentarer og 2 løsninger
join problem
Jeg forsøger at lave et join med 3 tabeller hvilket jeg ikke helt kan få til at fungere. Jeg skal ud fra et matchid ha fundet hvilke spillere der har deltaget i en kamp.
Det jeg forsøger er at joine Matches.matchid på Matches_players.matchid, og bagefter joine Matches_players.matchid på Members.id
Det jeg er kommet frem til indtil videre:
SELECT *
FROM Matches
LEFT JOIN matches_players
ON matches.matchid = matches_players.matchid
LEFT JOIN members
ON members.id = matches_players.playerid
LEFT JOIN matches
ON matches_types.matchtypesid = matches.type
WHERE matches.matchid = $id
Jeg er ikke klar over om det er fordi det er et andet join man bør benytte i denne situation eller hvad der galt, men jeg får fejlen, #1066 - Not unique table/alias: 'matches'
Jamen saa lad mig joine traaden med disse observationer:
Koden
"....LEFT JOIN matches m2 ON matches_types.matchtypesid = m2.type ...."
giver fejl "Unknown column `matches_types.matchtypesid`" fordi der i tabellen matches ikke er nogen kolonne matches_type/matchtypesid.
Som allerede sagt, koden som givet svarer ikke til problemet som beskrevet. Jeg vil gaette paa at du har ikke tre men fire tabeller, den fjerde match_types(matchid, matchnavn) eller noget i den retning.
Jeg gaetter videre at din tredje join skulle have vaeret LEFT JOIN match_types ON match_types.matchtypesid = matches.type.
Og endelig gaetter jeg at det fulde problem er dette: For en given match identificeret med $id find matchtypen og de medlemmer der deltog i matchen.
Hvis det alt sammen er korrekt, saa kommer koden (som foreslaaet aendret) stort set til at svare til problemet.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.