---
title: "Slå ihop adresser"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/185097-slå-ihop-adresser"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Jesper T"
published: "2010-11-01T08:34:51.000Z"
updated: "2010-11-01T18:31:55.000Z"
replies: 3
views: 588
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/185097-slå-ihop-adresser"
---

# Slå ihop adresser

## #1 — Jesper T, 2010-11-01T08:34Z

Jag har två tabeller *Person* och *Person_relation*

I tabellen Person har jag *Namn, postadress, ort osv*.

I tabellen *Person_relation* kopplar jag ihop en person med en annan person.

Nu vill jag göra en "rapport" som spottar ut alla personers adresser men då endast en rad per unik adress. Det går självklart inte att helt sonika gruppera adresserna då två personer kan ha samma postadress som inte har någon koppling till varandra.

Däremot så är risken minimal om jag kollar huruvida de har en koppling i tabellen *Person_relation* när jag grupperar dem.

Hur skulle en sådan sql se ut?

```
[B]Person[/B]
id | namn   | postadress   | ort
-----------------------------------
1  | Kalle  | Storgatan 18 | Särna
2  | Åsa    | Vasagatan 2b | Sala
3  | Britta | Åsgatan 3    | Järla
4  | Berit  | Storgatan 18 | Särna

[B]Person_relation[/B]
p1_id | p2_id
---------------
1     |  4
```

**Resultat** *(Då Berit och Kalle har en relation och har samma adress)*
Kalle, Storgatan 18, Särna
Åsa, Vasagatan 2b, Sala
Britta, Åsgatan 3, Järla

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

## #2 — LarsG, 2010-11-01T12:07Z

```
select namn,
       postadress,
       ort
  from person
 where not exists
    (select *
       from person_relation
  where person.id = person_relation.p2_id)
```

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

## #3 — aron, 2010-11-01T17:19Z

> **[LarsG skrev:](https://www.webforum.nu/p/1521481)**
>
> ```
> select namn,
>        postadress,
>        ort
>   from person
>  where not exists
>     (select *
>        from person_relation
>   where person.id = person_relation.p2_id)
> ```

Det där förutsätter ju att alla personer som är i relationer har samma adress, den ena adressen tas bort för alla som är i en relation.

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

## #4 — Lasp, 2010-11-01T18:31Z

\>aron  Det var ju så TS skrev i sitt exempel!
Återigen har LarsG levererat en härlig lösning :birp :birp :birp :birp

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/185097-slå-ihop-adresser
