---
title: "Right Outer Join"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/40505-right-outer-join"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "kristoffer"
published: "2002-03-29T00:47:46.000Z"
updated: "2002-04-01T22:44:45.000Z"
replies: 6
views: 238
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/40505-right-outer-join"
---

# Right Outer Join

## #1 — kristoffer, 2002-03-29T00:47Z

Jag har poster lagrade i tabellen **tblArticle_art** som har en främmande nyckel **intId_cat** med en relation till fältet **intId** i **tblCategory_cat**. I **tblArticle_art** finns även fältet datDateEnd och i **tblCategory_cat** finns även fältet **strName** som innehåller namnet på en kategori. Jag vill välja ut alla artiklar i en angiven kategori. Om det saknas artiklar i kategorin skall kategorinamnet ändå returneras. Därför gör jag följande SQL-fråga:

```
SELECT art.intId, cat.strName
FROM tblArticle_art AS art RIGHT OUTER JOIN
    tblCategory_cat AS cat ON art.intId_cat = cat.intId
WHERE cat.intId = 5
```

 

där jag väljer ut alla artiklar i kategorin 5. Om det finns poster som uppfyller kraven så väljs dessa och innehåller även kategorinamnet, och om det inte finns några poster så får jag ändå en post med art.intId = \<NULL\> och cat.strName = "nyheter" exempelvis.

Men om jag vill att posterna skall uppfylla ytterligare ett krav,

```
SELECT art.intId, cat.strName
FROM tblArticle_art AS art RIGHT OUTER JOIN
    tblCategory_cat AS cat ON art.intId_cat = cat.intId
WHERE cat.intId = 5 AND datDateEnd >= '2002-03-01'
```

 

så får jag art.intId = \<NULL\> och cat.strName = \<NULL\> om det inte finns några poster som uppfyller kraven. Jag vill ju fortfarande ha art.intId = \<NULL\> och cat.strName = "nyheter" exempelvis.

Vad göra?

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

## #2 — LarsG, 2002-03-29T16:16Z

```
SELECT art.intId, cat.strName
FROM tblArticle_art AS art RIGHT OUTER JOIN
    tblCategory_cat AS cat ON art.intId_cat = cat.intId
AND datDateEnd >= '2002-03-01'
WHERE cat.intId = 5
```

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

## #3 — kristoffer, 2002-03-29T16:24Z

Tack så mycket. Respekt.

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

## #4 — kristoffer, 2002-03-29T16:49Z

Och om jag vill returnera antal poster i samma SQL-fråga? Om det inte finns några poster vill jag ju ha 0 och inte 1 som det blir nu.

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

## #5 — kristoffer, 2002-04-01T21:13Z

LarsG?

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

## #6 — LarsG, 2002-04-01T22:37Z

byt count(\*) mot count(columnName) där columnName är någon kolumn i den högra tabellen.

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

## #7 — kristoffer, 2002-04-01T22:44Z

Nja, då får jag 1 om det finns poster i kategorin och ingeting alls om det inte finns några. 

Jag vill ha antal poster i kategorin om det finns några och 0 om det inte finns några. Nu gör jag objRS.RecordCount vilket fungerar om det finns några. Om det inte finns några poster blir objRS.RecordCount 1 eftersom jag returnerar kategorinamnet.

Det fungerar alltså inte?

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/40505-right-outer-join
