---
title: "Visa alla mappar oavsett om de är tomma eller ej."
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/79101-visa-alla-mappar-oavsett-om-de-är-tomma-eller-ej"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Peeer"
published: "2003-06-06T19:36:41.000Z"
updated: "2003-06-09T22:04:09.000Z"
replies: 9
views: 389
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/79101-visa-alla-mappar-oavsett-om-de-är-tomma-eller-ej"
---

# Visa alla mappar oavsett om de är tomma eller ej.

## #1 — Peeer, 2003-06-06T19:36Z

När jag använder nedstående kod får jag ut alla meddelanden som besökaren har i sina mappar, men jag vill även ha ut de mapparna som inte innehåller några meddelanden. Hur gör jag det? Har trixat lite med outer join, men får inte till det alls.

```
select pm_subject, folder_name from pm_folders f, pm_mess m, pm p
where p.pm_uid = 1 and 
p.pm_current_id = m.pm_id and
p.pm_folder = f.folder_id
```

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

## #2 — Peeer, 2003-06-07T19:19Z

Har trixat lite mer och knåpat ihop nedstående. Meningen är att den ska lista alla användarens mappar, samt antalet meddelanden i mapparna. Tyvärr så får jag samma fel som ovan (dvs. mappar utan meddelande visas inte alls). Hur gör jag?

```
SELECT folder_name, count( * ) AS Antal
FROM pm AS p
RIGHT OUTER JOIN pm_folders ON pm_folders.folder_uid = 1
WHERE pm_folders.folder_uid = 1 AND p.pm_folder = pm_folders.folder_id
GROUP BY folder_name LIMIT 0 , 30
```

Lite tabellstruktur kanske:

```
pm:
  pm_current_id int(11) NOT NULL default '0',
  pm_uid int(11) NOT NULL default '0',
  pm_folder int(11) NOT NULL default '0'

pm_folders:
  folder_id int(11) NOT NULL auto_increment,
  folder_name varchar(25) NOT NULL default '',
  folder_uid int(11) NOT NULL default '0',

pm_mess
  pm_id int(11) NOT NULL auto_increment,
  pm_mess text NOT NULL,
  pm_subject varchar(150) NOT NULL default '',
```

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

## #3 — cyprys, 2003-06-07T19:34Z

LEFT JOIN ?

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

## #4 — Peeer, 2003-06-07T19:37Z

> **cyprys skrev:**
>
> LEFT JOIN ?

Ger exakt samma resultat :( 
Om du nu bara menade att jag skulle byta ut right outer join mot left istället.

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

## #5 — LarsG, 2003-06-09T20:37Z

Flytta villkoren från where till on.

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

## #6 — Peeer, 2003-06-09T20:53Z

```
SELECT folder_name, folder_id, count( * ) AS Antal
FROM pm AS p
RIGHT OUTER JOIN pm_folders ON p.pm_folder = pm_folders.folder_id
where pm_folders.folder_uid = 2
GROUP BY folder_name LIMIT 0 , 30
```

Nu funkar den nästan. Det enda som blir fel är om en mapp inte innehåller några meddelanden så står det 1 istället för 0. Annars så ser allt ut att stämma. :) Tips?

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

## #7 — LarsG, 2003-06-09T21:30Z

count( pm_folders.folder_id ) AS Antal

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

## #8 — Peeer, 2003-06-09T21:36Z

Tyvärr, ingen skillnad. :(

r/ "count( p.pm_folder ) AS Antal" fungerade däremot. Tack för hjälpen. Du är en klippa!

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

## #9 — LarsG, 2003-06-09T21:50Z

Jo, du hade ju en right join. 

count(\*) innebär att alla värden, inklusive null räknas medans count(columnname) innebär att alla nullvärden ignoreras.

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

## #10 — Peeer, 2003-06-09T22:04Z

Där ser man. Varje dag lär man sig något nytt.  :)

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/79101-visa-alla-mappar-oavsett-om-de-är-tomma-eller-ej
