---
title: "Problem med left join."
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/170208-problem-med-left-join"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Jesper T"
published: "2008-03-25T13:24:20.000Z"
updated: "2008-03-25T16:42:20.000Z"
replies: 4
views: 499
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/170208-problem-med-left-join"
---

# Problem med left join.

## #1 — Jesper T, 2008-03-25T13:24Z

Oavsätt om jag byter ut inner till Left eller right så visas inner join resultatet. 
Jag skulle vilja ha alla poster ifrån tabellen "objecttype" oavsätt om personerna har poster vars "objecttype.id" motsvaras i tabellen "objecttype"  eller ej.

```
SELECT ot.id, ot.typename, count(o.objectid) commonCount
FROM objectsusers o
inner JOIN objectsusers o2 ON o.objectid=o2.objectid
inner JOIN objects ob on o.objectid = ob.id
[blue][B]inner JOIN objecttype ot ON ot.id = ob.typeid[/B][/blue]
WHERE o.username = 'kalle' and o2.username = 'pelle'
group by ot.id
```

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

## #2 — LarsG, 2008-03-25T13:45Z

```
SELECT ot.id, ot.typename, count(o.objectid) commonCount
FROM  objecttype ot 
left JOIN objects ob ON ot.id = ob.typeid
left join objectsusers o on o.objectid = ob.id
and  o.username = 'kalle' 
left JOIN objectsusers o2 ON o.objectid=o2.objectid
and o2.username = 'pelle'
group by ot.id
```

Jag ändrade ordningen då jag tycker att det är enklare att se om du har huvudtabellen först, så det kan mycket väl ha blivit något fel där. I övrigt har jag bara flyttat lite villkor.

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

## #3 — Jesper T, 2008-03-25T14:27Z

Härligt, behövde bara ändra count(o.objectid) till count(**o2**.objectid).

Men när jag lägger till en subselect i satsen:

```
SELECT ot.id, ot.typename, count(o2.objectid) commonCount
,[blue](select count(*) FROM objectsusers ou 
 INNER JOIN objects ob2 on ou.objectid = ob2.id 
 WHERE ob2.typeid = ot.id and ou.username=o2.username) objCount[/blue]
FROM  objecttype ot 
...
```

Så visas märkligt nog endast resultatet på första raden.

```
1    Fåglar    4    14
2    Fiskar    15   [red]0[/red]
3    Bilar     0    0
...
```

Om jag testar den "enskilt" så ger den önskat resultat.

```
select count(*) FROM objectsusers ou 
 INNER JOIN objects ob2 on ou.objectid = ob2.id 
 WHERE ob2.typeid = 2 and ou.username='pelle';

Resultat: 27
```

MSDB=Mysql 5 (..som verkar göra lite som den vill.)

**R/ OBS! Ändrat på kolumnerna i resultatet!**

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

## #4 — LarsG, 2008-03-25T15:56Z

Ja, det är ju fel. Resultatet av en count kan aldrig bli null. Rapportera.

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

## #5 — Jesper T, 2008-03-25T16:42Z

Åhh, jag skrev null men menade 0 (redigerat). Men det är fortfarande inte rätt.

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/170208-problem-med-left-join
