---
title: "relationstabell"
type: "forum-thread"
url: "https://www.webforum.nu/amne/webbutveckling/80691-relationstabell"
topic: "Webbutveckling"
topic_url: "https://www.webforum.nu/amne/webbutveckling"
author: "Hallgren"
published: "2003-06-26T22:03:47.000Z"
updated: "2003-06-28T14:32:13.000Z"
replies: 10
views: 1222
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/webbutveckling/80691-relationstabell"
---

# relationstabell

## #1 — Hallgren, 2003-06-26T22:03Z

Hej på er!

Sitter och gör ett matchskript och det har nu visat sig att jag behöver använda realtionstabeller för att få allt att funka **men** nu är det så att jag inte kan med realationstabeller och allt som kommer med det.  :l  Så nu behöver jag lite hjälp med att få begreppet förklarat och gärna med ett exempelt eller två. :)

BTW, jag använder mysql om det nu ändrar på något.

\[r\]
Borde denna tråd kanske ligga i **mySQL**  delen?

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

## #2 — LarsG, 2003-06-26T22:22Z

Tja, inte i ASP i alla fall.

En relationstabell används för att beskriva en många till många relation, t.ex drinkar och ingredienser.

För att beskriva detta så har man tre tabeller, 

Drinkar
\--------
Dnamn, beskrivning (nyckel Dnamn)

Ingredienser
\----------------
Inamn, beskrivning 

mixer
\-------
Dnamn,Inamn,kvantitet 

Relationstabellen innehåller två kolumner Dnamn och Inamn som används för att koppla samman de olika tabellerna. Om detta används ofta beteckningen join.

Databaser kan kontrollera att tabellerna inte innehåller felaktigt data, t,ex så skall det inte gå att lagra ett inamn i tabellen mixer som inte finns i tabellen ingredienser. Detta begrepp kallas referentiell integritet och man använder även begreppet främmande nycklar (foreign keys).

Mysql har stöd för foreign keys (med några konstiga restriktioner) om du använder InnoDB.  Det står en del i deras manual.

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

## #3 — Hallgren, 2003-06-26T22:55Z

Aha, mkay nu är det lite mer klart än va det va förut ialla fall. :)

Här är den strukturen jag tänker ha på min DB, vad mer behöver jag lägga till och hur skulle den SELECT så ut i så fall?

tblClans (tbl1)
clanID, clanCountry, clanName

tblWars (tbl2)
warID, warType, scoreHome, scoreAway, warDate, warReport

tblLineup (tbl3)
linupID, player1, player2, player3, player4, player5, player6

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

## #4 — LarsG, 2003-06-27T16:45Z

Att ha player1, player2 etc är aldrig bra. I stället för att ha flera  **kolumner**  så lagrar du flera poster i en tabell med 3 kolumner

lineUpID, player, ordinal

Vad mer behövs? Det beror väl på vad du vill lagra ...

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

## #5 — Hallgren, 2003-06-27T18:46Z

...

har bestämt mig för att skippa den 3e tabellen just nu. :)

mina tabeller så ut på följande sätt.

clans (tbl1)
clanID, clan, country

wars (tbl2)
warID, clanID, wardate, wartype, result_home, result_away, auther, report

har löst det med hur jag lagrar allt i dbn men nu vill jag ju skriva ut allt också men vet inte hur jag binder ihop dem i min SELECT så rätt info kommer på rätt plats. :l

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

## #6 — LarsG, 2003-06-27T19:31Z

t.ex. alla clans som finns i ett war av typ kilt

```
select clan,country 
 from clans inner join wars on
  clans.clanID = wars.clanID
 where wartype = 'kilt'
```

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

## #7 — Hallgren, 2003-06-27T19:34Z

om jag nu vill loopa ut allt och inte bara wartype 'kilt"?

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

## #8 — LarsG, 2003-06-27T20:18Z

Ännu enklare, alla clans som finns i något war

```
select clan,country 
 from clans inner join wars on
  clans.clanID = wars.clanID
```

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

## #9 — Hallgren, 2003-06-28T14:12Z

Mm, något e fel. :l när jag försöker komma åt info från wars så får jag: 
 
*ADO Could not find the object in the collection corresponding to the name or ordinal reference requested by the collection* 

måste jag inte ange fälten från wars i min select?

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

## #10 — LarsG, 2003-06-28T14:18Z

Jo, då får du ange dessa i select-listan

```
select clan,country,wartype,wardate
 from clans inner join wars on
  clans.clanID = wars.clanID
```

t.ex. I detta exempel är alla kolumnnamn entydiga. Du kan alltid kvalificera kolumnnamn med tabellnamn

```
select clans.clan,clans.country,wars.wartype,wars.wardate
 from clans inner join wars on
  clans.clanID = wars.clanID
```

I ADO kan du inte använda det kvalificerade namnet.

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

## #11 — Hallgren, 2003-06-28T14:32Z

wohooo! :) funkar prima! Nästan så att man skulle ta och bjuda dig på en jordgubbe eller två. ;) tack!

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

---

Tråden på webben: https://www.webforum.nu/amne/webbutveckling/80691-relationstabell
