---
title: "Left join och average (MySql)"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/101793-left-join-och-average-mysql"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Ankman"
published: "2004-04-18T20:48:22.000Z"
updated: "2004-04-19T07:56:11.000Z"
replies: 2
views: 250
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/101793-left-join-och-average-mysql"
---

# Left join och average (MySql)

## #1 — Ankman, 2004-04-18T20:48Z

Jag vill med denna SQL-sats ha fram alla rader i songs som stämmer med villkoret record_id, de rader i song_grades som har ett betyg av den inloggade användaren (sg.user_id = $this-\>logged_in_user_id) samt medelbetyg på varje låt. 
Som den ser ut nu så tar den bara med de låtar som har ett betyg satt, jag vill alltså ha alla. Om jag tar bort den delen med average (joinen med sg2) så funkar det som det skall. Någon?

```
SELECT
       s.*, sg.grade, AVG(sg2.grade) AS average
 FROM
 	songs s
 LEFT JOIN
 	song_grades sg
 ON
 	s.id = sg.song_id
 AND
 	sg.user_id = $this->logged_in_user_id
 LEFT JOIN
 	song_grades sg2 
 ON
 	s.id = sg2.song_id
 WHERE
 	s.record_id = $record_id
 GROUP BY
 	sg2.song_id
 ORDER BY
	 s.order_num
```

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

## #2 — Engine^, 2004-04-19T07:06Z

Du gör en väldigt skum GROUP BY. Din SELECT innehåller inte ens den kolumnen, så den *bör* inte ens fungera, men det är väl MySQLs fula sätt att hantera GROUP BY.

Man ska egentligen ange alla kolumner i GROUP BY som man väljer ut i SELECT som inte är aggregatfunktioner.

```
SELECT s.id, s.name, s.blablabla, sg.grade, AVG(sg2.grade) AS average
.
.
.
GROUP BY s.id, s.name, s.blablabla, sg.grade
```

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

## #3 — Ankman, 2004-04-19T07:56Z

Jag hade inte riktigt förstått vad group by hade för funktion, lade till den när MySql talade om att jag måste ha den när jag lade till AVG(). Måste nog läsa på lite om SQL.

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/101793-left-join-och-average-mysql
