---
title: "Relatera en tabell till sig själv"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/118007-relatera-en-tabell-till-sig-själv"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "celia"
published: "2004-12-14T10:45:35.000Z"
updated: "2004-12-14T11:51:04.000Z"
replies: 5
views: 418
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/118007-relatera-en-tabell-till-sig-själv"
---

# Relatera en tabell till sig själv

## #1 — celia, 2004-12-14T10:45Z

Jag har en tabell som ser ut såhär:

\[User\]
UserId
Namn 
CreatedBy
ModifiedBy

tex

1 \| Nisse \| 2 \| 3
2 \| Pelle \| 1 \| 2
3 \| Kalle \| 3 \| 1

sen vill jag presentera data såhär:

Namn: Nisse
Skapad av: Pelle
Ändrad av: Kalle

dvs ersätta id med respektive namn. Hur ska man göra det? Finns det ett bättre sätt att bygga upp databasen?

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

## #2 — toha, 2004-12-14T10:51Z

SELECT
                 u.Namn,
                 c.Namn AS  CreateUser,
                 m.Namn AS ModifyUser
FROM
             User u
             LEFT OUTER JOIN
             User c
             ON
             u.CreatedBy = c.UserId
             LEFT OUTER JOIN
             User m
             ON
             u.ModifiedBy = m.UserId

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

## #3 — Koplik, 2004-12-14T10:59Z

Generell fråga. Blir det samma resultat om man kör en

```
Select u.Namn, c.Namn as CreateUser, m.Namn as ModifyUser 
From User u, User c, User m 
Where u.CreatedBy = c.UserID And u.ModifiedBy = m.UserID
```

Jag kör alltid where's istället för Joins. Men frågan är om det fungerar i alla lägen, därför är jag inte säker på att den fungerar här.

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

## #4 — @nders, 2004-12-14T11:01Z

Det är ekvivalent. Men kom ihåg, det blir alltid en inner join, eftersom du använder =.

I detta fall bör du alltså skriva med JOIN-syntax.

Edit: Man kan även använda \*= och =\* för att specificera outer joins, men jag är inte säker på att alla dbms stödjer detta.

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

## #5 — celia, 2004-12-14T11:34Z

Tack, fungerar fint :)

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

## #6 — toha, 2004-12-14T11:51Z

Vet inte vad joins med = och =\* i WHERE-satsen heter men jag tror någon sa att ansi-sql-joins (inner join, left outer join etc) var snabbare/bättre att använda. Jag tycker iaf det är lättare att jobba med. :)

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/118007-relatera-en-tabell-till-sig-själv
