---
title: "Skriva ut relaterade personer ifrån child"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/184895-skriva-ut-relaterade-personer-ifrån-child"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Travoni"
published: "2010-10-10T21:32:42.000Z"
updated: "2010-10-12T11:26:06.000Z"
replies: 7
views: 555
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/184895-skriva-ut-relaterade-personer-ifrån-child"
---

# Skriva ut relaterade personer ifrån child

## #1 — Travoni, 2010-10-10T21:32Z

Alla personer finns i tabellen *person*, barnen är länkade till föräldrarna via tabellen *person_person*.

```
[B]person[/B]
|id|name|adress|klass|telefon|

[B]person_person[/B]
|parent_id|child_id|

Exempeldata
[B]person[/B]
|1|Britta|Gata 2|1|08-123456|
|2|Bernt|Gata 2| |08-123456|
|3|Berit|Gata 2| |08-123456|
|4|Åke|Gata 3|1|08-123450|
|5|Ågart|Gata 3| |08-123450|
|6|Åsa|Gata 3| |08-123450|

[B]person_person[/B]
2|1
3|1
5|4
6|4
```

Alltså Britta och Åke har sina föräldrar med i tabellen och då vill jag att resultatet skall bli.

```
|1|Britta|Gata 2|1|08-123456|
|2|Bernt|Gata 2| |08-123456|
|3|Berit|Gata 2| |08-123456|
|4|Åke|Gata 3|1|08-123450|
|5|Ågart|Gata 3| |08-123450|
|6|Åsa|Gata 3| |08-123450|
```

Hur gör jag?

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

## #2 — aron, 2010-10-10T21:44Z

Vad menar du ska göras? Du har en tabel med personer och en tabbel med förälder/barn. Men vad ska du ha ut, "resultatet" är bara en kopia av exempledatan eller ser jag fel?

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

## #3 — Travoni, 2010-10-10T21:57Z

Du ser helt rätt, men såklart så är det mycke mer data. Problemet är att gruppera ihop barnen med rätt förälder och gruppera dessa så.

```
[B]Barn 1[/B]
 Förälder 1-1
 Förälder 1-2
[B]Barn 2[/B]
 Förälder 2-1
 osv
```

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

## #4 — Travoni, 2010-10-10T23:15Z

Eller kanske snarare så här:

```
Barn 1, Förälder 1-1, Förälder 1-2
Barn 2, Förälder 2-1, Förälder 2-2
osv
```

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

## #5 — nitro2k01, 2010-10-11T00:33Z

```
SELECT child.*,parent.* FROM person child
INNER JOIN person_person ON person_person.child_id = child.id
INNER JOIN person parent ON person_person.parent_id = parent.id
```

Svar får du på följande format:

```
child.id|child.name|parent.id|parent.name
1       |Britta    |2        |Bernt
1       |Britta    |3        |Berit
4       |Åke       |5        |Ågart
4       |Pke       |6        |Åsa
```

Nu har jag utelämnat adress/klass/telefon för enkelhetens skull, men du ser principen.

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

## #6 — Travoni, 2010-10-11T10:30Z

Fett nice.
Lite störigt att barnets namn upprepar sig men det får jag nog leva med.
Tack!

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

## #7 — nitro2k01, 2010-10-11T14:29Z

Nytt förslag:

```
SELECT child.*,par1.*,par2.* FROM person child
INNER JOIN person_person rel1 ON rel1.child_id = child.id
INNER JOIN person par1 ON rel1.parent_id = par1.id
INNER JOIN person_person rel2 ON rel2.child_id = child.id
INNER JOIN person par2 ON rel2.parent_id = par2.id AND par1.id > par2.id
```

Den organiserar datat som du vill, men med skillnaden att det förutsätter att varje barn har precis två föräldrar registrerade.
Bara en förälder = barnet visas inte.
Fler än en förälder = lustiga resultat.

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

## #8 — Travoni, 2010-10-12T11:26Z

Fint skall testa det. Men visst det är barn som bara har en förälder.
Jag får labba lite.

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/184895-skriva-ut-relaterade-personer-ifrån-child
