---
title: "Sätta vilkort på innerjoin med tre tabeller"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/135137-sätta-vilkort-på-innerjoin-med-tre-tabeller"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "peppar"
published: "2005-10-02T18:55:41.000Z"
updated: "2005-10-03T19:30:47.000Z"
replies: 16
views: 370
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/135137-sätta-vilkort-på-innerjoin-med-tre-tabeller"
---

# Sätta vilkort på innerjoin med tre tabeller

## #1 — peppar, 2005-10-02T18:55Z

Har en SQL som ser ut sidåhär:

```
SELECT art_pages.*, art_typ.*, art_artiklar.* "&_
"FROM art_typ INNER JOIN (art_artiklar INNER JOIN art_pages ON art_artiklar.artId = art_pages.pagArtOrigin) ON art_typ.typId = art_artiklar.artTyp;
```

Men om jag vill smala av med vilkor får art_pages och art_typ t.ex såhär: 

```
where art_pages = "nyheter"
```

 och 

```
where art_typ = "nyheter"
```

 så får jag inte ihop det... hur får jag inte vilkor i denna SELECTfråga?

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

## #2 — Peter S, 2005-10-02T20:12Z

Vad heter kolumnerna i "art_pages" och "art_typ" som du vill skall ha värdena "nyheter"?

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

## #3 — peppar, 2005-10-02T20:17Z

art_pages heter fältet pagPages och art_typ = typTyp

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

## #4 — Peter S, 2005-10-02T20:26Z

```
"SELECT art_pages.*" & _
"     , art_typ.*" & _
"     , art_artiklar.*" & _
"  FROM art_typ " & _
"INNER" & _
"  JOIN (art_artiklar" & _
"         INNER" & _
"           JOIN art_pages" & _
"             ON art_artiklar.artId = art_pages.pagArtOrigin)" & _
"    ON art_typ.typId = art_artiklar.artTyp" & _
" WHERE art_pages.pagpages" & _
"     = 'nyheter'" & _
"   and art_type.typtyp" & _
"     = 'nyheter';"
```

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

## #5 — peppar, 2005-10-03T16:05Z

Jag får ett fel med denna fråga...  -"Det har inte angetts något värde för en eller flera nödvändiga parametrar."
Utskriften av SQL visar detta... 

```
SELECT art_pages.* , art_typ.* , art_artiklar.* FROM art_typ INNER JOIN 
(art_artiklar INNER JOIN art_pages 
ON art_artiklar.artId = art_pages.pagArtOrigin) ON art_typ.typId = art_artiklar.artTyp 
WHERE art_pages.pagSida = 'nyheter' and art_type.typtyp = 'nyhet';
```

 Observera mina ändringar i fältnamnet (pagSida iställer frö pagPages) och värdet "nyhet" jämförs mot "typTyp"

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

## #6 — Peter S, 2005-10-03T16:14Z

Då är det med stor sannolikhet något fältnamn som är felstavat.

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

## #7 — peppar, 2005-10-03T16:21Z

Näppeligen, men däremot ett tabellnamn ;) Miss av mig... Tack som tusan...

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

## #8 — peppar, 2005-10-03T16:31Z

Men. däremot att iterera genom alla poster med dessa kriterier då? Jag har just nu två poster som matchar vilkoren ovan, men får inte till en iteration som skriver ut alla poster utan bara den senaste... Måste jag lägga till en ORDER BY får att det skall fungera? Eller kan man tjonga in en GETROWS   :q

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

## #9 — Peter S, 2005-10-03T17:21Z

Om SQL-koden returnerar två rader bör även två rader skrivas ut vid iterering över resultatet, oavsett vilken metod du använder. Hur ser serverkoden ut?

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

## #10 — peppar, 2005-10-03T17:44Z

Jag var nog lite otydlig. SQLkoden returnerar bara EN post.. men i databasen finns två poster som **bör** passa dessa vilkor.. 
/red. men efter att ha tittat igenom databasen så hittade jag ett fel i en relation så det var inte så konstigt att den inte hittade fler än en post...

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

## #11 — peppar, 2005-10-03T18:45Z

Jag bygger vidare på dessa INNER JOINS men har stött på ett ogiltigt tecken... i frågan fast jag kan inte hitta vad tolken menar? Såhär ser frågan ut nu: 

```
sql =	"SELECT art_pages.*, art_typ.*, art_artiklar.*, medlemsregister.* "&_
		"FROM medlemsregister INNER JOIN (art_typ INNER JOIN (art_artiklar INNER JOIN art_pages ON art_artiklar.artId = art_pages.pagArtOrigin) ON art_typ.typId = "&_ 					        "art_artiklar.artTyp) ON medlemsregister.usrId = art_artiklar.artUsrID "&_
		"WHERE ((([art_pages].[pagSid])='nyheter') AND ((art_typ.typTyp)='nyhet'));"
```

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

## #12 — Peter S, 2005-10-03T19:06Z

Testa

```
sql = & _
"SELECT art_pages.*"&_
"     , art_typ.*"&_
"     , art_artiklar.*"&_
"     , medlemsregister.*"&_
"  FROM medlemsregister"&_
"INNER" &_
"  JOIN (art_typ"&_ 
"INNER" &_ 
"  JOIN (art_artiklar"&_ 
"INNER" &_
"  JOIN art_pages"&_
"    ON art_artiklar.artId = art_pages.pagArtOrigin)"&_
"    ON art_typ.typId = art_artiklar.artTyp)"&_
"    ON medlemsregister.usrId = art_artiklar.artUsrID "&_
" WHERE art_pages.pagSid = 'nyheter'"&_
"   AND art_typ.typTyp = 'nyhet';"
```

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

## #13 — peppar, 2005-10-03T19:21Z

hmm? Med den får jag ett syntax fel i FROM instruktionen...

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

## #14 — Peter S, 2005-10-03T19:24Z

Hoppsan!

```
sql =  _
"SELECT art_pages.*"&_
"     , art_typ.*"&_
"     , art_artiklar.*"&_
"     , medlemsregister.*"&_
"  FROM medlemsregister "&_
"INNER" &_
"  JOIN (art_typ "&_ 
"INNER" &_ 
"  JOIN (art_artiklar "&_ 
"INNER" &_
"  JOIN art_pages"&_
"    ON art_artiklar.artId = art_pages.pagArtOrigin)"&_
"    ON art_typ.typId = art_artiklar.artTyp)"&_
"    ON medlemsregister.usrId = art_artiklar.artUsrID "&_
" WHERE art_pages.pagSid = 'nyheter'"&_
"   AND art_typ.typTyp = 'nyhet';"
```

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

## #15 — peppar, 2005-10-03T19:26Z

Jag provade ditt första och sedan provade jag...

```
sql =  "SELECT art_pages.*"&_
osv...
```

 

Varför fick jag fel på den? vad gör underscoren?

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

## #16 — Peter S, 2005-10-03T19:29Z

Den talar om att satsen fortsätter på nästa rad. Felet låg i att jag satte ett '&' efter '=', vilket betyder konkatenering.

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

## #17 — peppar, 2005-10-03T19:30Z

sedärja...   :i

psst! det fungerar ju borde jag kanske säga... ! Tack... Men finns det någt bättre verktyg för detta än den i M$ Access?

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/135137-sätta-vilkort-på-innerjoin-med-tre-tabeller
