---
title: "Join - Tre tabeller"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/167398-join-tre-tabeller"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Pedda"
published: "2007-12-19T15:41:37.000Z"
updated: "2007-12-21T12:11:32.000Z"
replies: 9
views: 701
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/167398-join-tre-tabeller"
---

# Join - Tre tabeller

## #1 — Pedda, 2007-12-19T15:41Z

Får inte till min query.
Jag har fyra tabeller i en Access databas enligt följande struktur:

**Konton
\---------------**
KontoID
KontoNamn
RefTypID // referens till Typer - TypID

**Typer
\---------------**
TypID
TypNamn

**Innehall
\---------------**
InnehallID
RefModellID // referens till Modeller - ModellID
RefKontoID // referens till Konton - KontoID
InnehallVarde

**Modeller
\---------------**
ModellID
ModellNamn

Jag vill hämta allt i Konton och Typer plus innehallVarde från Innehall där RefModellID har ett specifikt värde.

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

## #2 — Peter S, 2007-12-19T19:08Z

```
select k.*
     , t.*
     , i.innehallVarde
  from (konton k
inner
  join typer t
    on k.reftypid = t.typid)
inner
  join innehall i
    on k.kontoid = i.refkontoid
 where i.refmodellid = <value>
```

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

## #3 — Pedda, 2007-12-19T21:01Z

Funkade fint.

Nu ska jag bara fixa en till query som ska hämta all data när jag har ett KontoID.

Alltså hämta allt i Konton,
TypNamn i Typer enligt referensen,
alla InnehallVarde i Innehall enligt referensen (Kan vara flera referenser till Konton)
alla Modellnamn i Modeller enligt referensen (Kan vara flera referenser till Innehall)

Går det att fixa i en query eller är jag tvungen att dela upp i flera?

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

## #4 — Peter S, 2007-12-20T07:17Z

```
select k.*
     , t.typnamn
     , i.innehallVarde
     , m.modellnamn
  from ((konton k
inner
  join typer t
    on k.reftypid = t.typid)
inner
  join innehall i
    on k.kontoid = i.refkontoid)
inner
  join modeller m
    on i.refmodellid = m.modellid
 where k.kontoid = <value>
```

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

## #5 — Pedda, 2007-12-21T08:19Z

Tyvärr, får OleDbExeption på den queryn.
"Det har inte angetts något värde för en eller flera nödvändiga parametrar."

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

## #6 — Peter S, 2007-12-21T09:24Z

SQL-frågan ser korrekt ut. Testa att köra den direkt i Access. Kontrollera namnen på parametrarna i .NET-applikationen.

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

## #7 — Pedda, 2007-12-21T09:32Z

Kör jag frågan i Access så promptar den att den vill ha m.modellnamn som inparameter  :q

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

## #8 — @nders, 2007-12-21T09:40Z

Heter fältet verkligen så då? :)

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

## #9 — Pedda, 2007-12-21T09:48Z

japp.
Testade att hämta med allt (\*) från alla tabeller, och då verkar det funka.

Men en fundering. Funkar det verkligen sen när jag ska publicera resultatet?
Jag har ju bara ett KontoNamn som bara ska presenteras en gång och t.ex ModellNamn kan ju flera knutna till den.

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

## #10 — Peter S, 2007-12-21T12:11Z

Om så är fallet måste du bestämma dig för vilka kriterier som skall uppfyllas för den rad du vill visa. För samtliga träffar för ett specifikt kontonamn är väl inte (alltid) identiska?

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

---

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