---
title: "Visa även om relation saknas"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/90748-visa-även-om-relation-saknas"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Skarre"
published: "2003-11-19T07:41:41.000Z"
updated: "2003-11-19T10:33:13.000Z"
replies: 2
views: 198
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/90748-visa-även-om-relation-saknas"
---

# Visa även om relation saknas

## #1 — Skarre, 2003-11-19T07:41Z

Jag har gett mig ut på för djupt vatten och skulle uppskatta om någon ville hjälpa mig att få ordning på nedanstående fråga som körs i ASP på en Access-databas.

Jag har tre tabeller:

- pers_personnel
- pers_categoryrelations
- pers_categories

pers_personnel innehåller information om användare och hänger ihop med pers_categoryrelations genom "userid". Den senare tabellen innehåller som namnet antyder information om vilka kategorier som användaren tillhör och hänger i sin tur ihop med pers_categories genom "categoryid".

Jag försöker lista alla kategorier i en tabell och även visa hur många personer som tillhör varje kategori. LarsG visade mig tidigare hur man åstadkommer detta med två tabeller som hänger samman med ett id, men jag blir lite förvirrad när det kommer in en tredje tabell i bilden. Detta är vad jag försökt med. Frågan ger resultat, men utelämnar kategorier som inte har några användare så jag antar att det är "JOIN:arna" som är fel. Jag vill alltså även visa de kategorier som ännu inte innehåller några användare.

```
SELECT COUNT(p.userid) AS perscount, c.categoryid, c.name, c.description
FROM (pers_personnel AS p LEFT OUTER JOIN pers_categoryrelations AS r ON p.userid = r.userid)
LEFT OUTER JOIN pers_categories AS c ON r.categoryid = c.categoryid
GROUP BY c.categoryid, c.name, c.description
```

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

## #2 — LarsG, 2003-11-19T08:54Z

Då du har en left join så innebär det att alla poster från pers_personnel kommer med. Du kan antingen byta till en right join

```
SELECT COUNT(p.userid) AS perscount, c.categoryid, c.name, c.description
FROM (pers_personnel AS p right OUTER JOIN pers_categoryrelations AS r ON p.userid = r.userid)
right OUTER JOIN pers_categories AS c ON r.categoryid = c.categoryid
GROUP BY c.categoryid, c.name, c.description
```

eller så kan du byta ordning så att du har  pers_categories som första tabell i from.

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

## #3 — Skarre, 2003-11-19T10:33Z

Tack ännu en gång LarsG! Jag ska se till att läsa på lite om "joins".  :)

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/90748-visa-även-om-relation-saknas
