---
title: "SQL - relationstabell - JOIN"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/21925-sql-relationstabell-join"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "solbulle"
published: "2002-02-05T23:35:00.000Z"
updated: "2002-02-06T20:36:00.000Z"
replies: 9
views: 233
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/21925-sql-relationstabell-join"
---

# SQL - relationstabell - JOIN

## #1 — solbulle, 2002-02-05T23:35Z

Har denna SQL, den gör vad den ska, men nu vill jag kunna plocka ut en post där tblrelation.fld_who_id stämmer med tblrelation.fld_bild_id. Jag vill alltså kunna spara flera relationer i min relationstabell men på något sätt kunna plocka ut varje artikel men med endast en bild.
Går det att lösa direkt i SQL-satsen/frågan? Ska jag lägga till ett fält i min relationstabell för att markera "förstahandsvalet"?

```
SQL = "SELECT * FROM (tblwho LEFT OUTER JOIN tblrelation ON tblwho.fldartikelID=tblrelation.fld_who_id) LEFT OUTER JOIN tblbild ON tblrelation.fld_bild_id = tblbild.fldBildid where fldPlace < 15 ORDER BY fldPlace"
```

Red. Som läget är nu får jag (givetvis) ut alla poster där det matchar, det gör att när jag lägger det i en array får jag dubletter. (Distinct...?)

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

## #2 — LarsG, 2002-02-05T23:43Z

Distinct hjälper inte, men det går att ordna så att det blir en bild (den med högst eller lägst id) om du använder group by och max. Jag skulle nog rekommendera att du har någon rangordning mellan bilder eller liknande.

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

## #3 — solbulle, 2002-02-06T00:13Z

Hm... om jag tar och lägger till ett fält i min relationstabell, tex en kryssruta, för den bild som skall visas/prioriteras, hur ska min sqlfråga då se ut tro?

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

## #4 — LarsG, 2002-02-06T00:27Z

```
SQL = "SELECT * FROM (tblwho LEFT OUTER JOIN tblrelation ON tblwho.fldartikelID=tblrelation.fld_who_id) LEFT OUTER JOIN tblbild ON (tblrelation.fld_bild_id = tblbild.fldBildid and tblBild.rank = 1) where fldPlace < 15 ORDER BY fldPlace"
```

red: Om man kör access brukar det behövas extra parenteser

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

## #5 — solbulle, 2002-02-06T01:03Z

Sådär ja, jag ändrade till tblrelation.rank och efter att jag efter ett tag insett varför bilderna inte syntes fungerade det. (Bildens plats försköts i den array jag plockar ut.) - Börjar bli lite trött nu...

Tackar.

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

## #6 — solbulle, 2002-02-06T11:51Z

Om jag nu utgår från denna men vill plocka ut en post där fldartikelID = strID (strID från en querystring)
Hur gör jag då?
Jag vill nu alltså plocka ut "artikeln" samt alla bilder som hör till och sen lägga dessa i en array.
(Kommer bilderna sist i arrayen? Hur vet man annars den inbördes placeringen av posterna?)

```
SQL = "SELECT * FROM (tblwho LEFT OUTER JOIN tblrelation ON tblwho.fldartikelID=tblrelation.fld_who_id) LEFT OUTER JOIN tblbild ON tblrelation.fld_bild_id = tblbild.fldBildid where fldartikelID = fldartikelID"
```

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

## #7 — LarsG, 2002-02-06T11:58Z

```
SQL = "SELECT * FROM (tblwho LEFT OUTER JOIN tblrelation ON tblwho.fldartikelID=tblrelation.fld_who_id) LEFT OUTER JOIN tblbild ON tblrelation.fld_bild_id = tblbild.fldBildid where fldartikelID = " & request.querystring("fldartikelID") order by fldPlace
```

Ordningen mellan poster är enbart beroende av det som står i order by.

jag förstår inte vad du menade med

> Kommer bilderna sist i arrayen?

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

## #8 — solbulle, 2002-02-06T19:57Z

Attans bra respons här, dock var jag tvungen att fasra så jag har inte kunnat ta del av svaret tidigare.

Kalas, dock fick jag "fnutta lite" (?)

```
SQL = "SELECT * FROM (tblwho LEFT OUTER JOIN tblrelation ON tblwho.fldartikelID=tblrelation.fld_who_id) LEFT OUTER JOIN tblbild ON tblrelation.fld_bild_id = tblbild.fldBildid where fldartikelID = " & request.querystring("fldartikelID") & " order by fldPlace"
```

Ang 

> Kommer bilderna sist i arrayen?

 så var det jag som snurrade till det hela i hjärnverksamheten och tänkte att "bild2" skule hamna på en senare "plats" i arrayen, den hamnar givetvis i en annan dimension. (Heter det så?) -Så jag får loopa ut bilderna.
Nu är det bara en liten grej, säkert bara jag som tänker fel.
För att få ut mina bilder loopar jag min array:

```
for i=0 to ubound(myArray,2)
strImage = myArray(19,i)
next
```

 Men hur gör jag om jag vill typ kunna ge variabeln ett dynamiskt namn typ strImage + i , så att jag till slut sitter med:

strImage1
strImage2
strImage3 osv.

Fast det går väl iofs inte att "manipulera" variabelnamn? Någon annan lösning.

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

## #9 — LarsG, 2002-02-06T20:04Z

jag förstår nog inte. Bilderna finns ju i din array så ...

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

## #10 — solbulle, 2002-02-06T20:36Z

Hjärnsläpp på den här sidan av teleledningen...

Allt är lugnt nu.

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/21925-sql-relationstabell-join
