---
title: "Hämta data från tre tabeller"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/167971-hämta-data-från-tre-tabeller"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "MickeA.com"
published: "2008-01-09T22:00:51.000Z"
updated: "2008-01-10T09:46:09.000Z"
replies: 2
views: 387
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/167971-hämta-data-från-tre-tabeller"
---

# Hämta data från tre tabeller

## #1 — MickeA.com, 2008-01-09T22:00Z

Hej!
Jag försöker få ihop det sista i en portfolio som jag gjort.
Det ser ut såhär:
   \- Tre tabeller, Kategori, Projekt och Bild.
   \- Det kan finnas *x* antal kategorier.
   \- Det kan finnas *x* antal projekt i en kategori.
   \- Det kan finnas *x* antal bilder till ett projekt.
  
Tabellstrukturen ser ut såhär:

```
portfolio_cat (kategorier)
pcat_id    (ID, INT)
pcat_name  (Namn, VARCHAR)
pcat_order  (Visningsordning, INT)

portfolio_content (projekt)
pcon_id     (ID, INT)
pcon_parent (Kategori, INT)
pcon_name   (Namn, VARCHAR)
pcon_order  (Visningsordning, INT)

portfolio_picture (bilder)
ppic_id     (ID, INT)
ppic_parent (Projekt, INT)
ppic_order  (Visningsordning, INT)
```

Såhär ser min fråga ut:

```
SELECT 
a.pcat_id, a.pcat_name, 
b.pcon_id, b.pcon_parent, b.pcon_name, b.pcon_text, 
c.ppic_id, c.ppic_parent, c.ppic_uri, 
FROM portfolio_cat a, portfolio_content b, portfolio_picture c 
WHERE a.pcat_id = b.pcon_parent 
AND b.pcon_id = c.ppic_parent 
ORDER BY a.pcat_order ASC, b.pcon_order ASC, c.ppic_order ASC
```

Nu är tanken att kategorier, projekt och bilder ska hämtas, allt ska sorteras efter resp. visnings ordning, alltså först sorterat på kategori-ordning, sen projekt-ordning och till sist bild-ordning.
Jag har försökt med ovanstående, men resultatet blir att endast ett projekt hämtas - 10 gånger.

Nu skulle jag behöva lite tips på hur jag ska lösa det här, tror att jag tänker helt fel.

Säg till om ni behöver mer input, just det, sidan är skriven i PHP och DBMS är MySQL 4.x

Tack!

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

## #2 — Travoni, 2008-01-09T22:20Z

Så här kanske:

```
SELECT 
a.pcat_id, a.pcat_name, 
b.pcon_id, b.pcon_parent, b.pcon_name, b.pcon_text, 
c.ppic_id, c.ppic_parent, c.ppic_uri, 
FROM portfolio_content b
INNER JOIN portfolio_cat a ON a.pcat_id = b.pcon_parent
LEFT JOIN portfolio_picture c ON b.pcon_id = c.ppic_parent
ORDER BY a.pcat_order, b.pcon_order, c.ppic_order
```

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

## #3 — MickeA.com, 2008-01-10T09:46Z

Hej igen,
Ovanstående funkade inte så bra heller, jag kanske har varit lite otydlig.
Nu gjorde jag iaf, såhär:

```
SELECT
a.pcat_id, a.pcat_name, 
b.pcon_id, b.pcon_parent, b.pcon_name, b.pcon_text 
FROM portfolio_cat a INNER JOIN portfolio_content b 
ON a.pcat_id = b.pcon_parent 
ORDER BY a.pcat_order ASC, b.pcon_order ASC
```

Jag struntar helt i att plocka ut bilderna från början, här hämtas endast kategorier / projekt.
Det fungerar som jag vill, tror jag gör såhär och hämtar sedan ut bilderna till varje projekt i loopen.

Eller finns det något annat sätt?

Saken är den att ev. bilder ska visas i lightbox, med paging, så det funkar på ett litet speciellt sätt.
I själva loopen (om det finns bilder) ska endast den första bilden synas, de andra ska sparas i en array och loopas ut efter att alla projekt loopats ut, för att lightboxen ska lira schysst.

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/167971-hämta-data-från-tre-tabeller
