---
title: "Joina tre tabeller?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/186540-joina-tre-tabeller"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "casca"
published: "2011-03-30T12:16:16.000Z"
updated: "2011-03-30T12:24:20.000Z"
replies: 2
views: 669
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/186540-joina-tre-tabeller"
---

# Joina tre tabeller?

## #1 — casca, 2011-03-30T12:16Z

Ja, jag vet inte om rubriken är helt korrekt men detta är iaf mitt problem:

Queryn i sin nuvarande form ser ut så här:

```
SQL-fråga: SELECT g.Id, g.GroupId, g.ClassId, g.TeamA_Id, g.TeamB_Id FROM Game g WHERE g.CupId = '1' LIMIT 0, 30 ;

Id 	GroupId 	ClassId 	TeamA_Id 	TeamB_Id
1 	1 	        1 	        3 	        4
2 	6 	        6 	        18 	        19
```

Detta representerar två "matcher". I en annan tabell, Team, har jag ID, namn osv. för varje lag som deltar, och skulle nu vilja hämta lagnamnet istället för enbart ID... men hur gör jag det?

Säg att lag-ID 3 har namnet "Lag 1" i den andra tabellen, då vill jag skriva ut följande:

```
Id 	GroupId 	ClassId 	TeamA_Id 	TeamB_Id
1 	1 	        1 	        Lag 1 	        Lag 2
2 	6 	        6 	        Lag 3 	        Lag 4
```

Får ut t.ex TeamA_Id's lagnamn genom en join, men hur gör man när det är två olika värden?

Permalänk: https://www.webforum.nu/p/186540

## #2 — @nders, 2011-03-30T12:21Z

Du kanske får ändra fältnamnen, men det förstår du nog. Antar jag.  :)

```
SELECT g.Id, g.GroupId, g.ClassId, team1.name, team2.name 
FROM Game g 
INNER JOIN Team team1 
	ON g.TeamA_ID = team1.id
INNER JOIN Team team2
	ON g.TeamB_ID = team2.id
WHERE g.CupId = '1' 
LIMIT 0, 30 ;
```

Permalänk: https://www.webforum.nu/p/2273509

## #3 — casca, 2011-03-30T12:24Z

Tack @nders, löste också problemet själv, men för kunskapens skull är det bra med utförliga lösningar...  ;)

Så här gjorde iaf jag, innerjoinade med en join:

```
SELECT g.Id, g.GroupId, g.ClassId, t.TeamName, t2.TeamName
FROM Game g INNER JOIN Team t ON g.TeamA_Id = t.Id JOIN Team t2 ON g.TeamB_Id = t2.Id
WHERE g.CupId = '1'
```

Permalänk: https://www.webforum.nu/p/2273510

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/186540-joina-tre-tabeller
