---
title: "Dubbla left join samt unique"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/149316-dubbla-left-join-samt-unique"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "nitro2k01"
published: "2006-07-22T21:04:31.000Z"
updated: "2006-08-03T07:15:44.000Z"
replies: 5
views: 412
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/149316-dubbla-left-join-samt-unique"
---

# Dubbla left join samt unique

## #1 — nitro2k01, 2006-07-22T21:04Z

Jag har en sida där man kan ladda ner musik och även betygssätta den. För att få ut en lista över låtarna använder jag följande SQL-fråga. Tabellen items innehåller listan över låtarna. Tabellen ratings innehåller en röst per rad, där en röst (ratings.value) innehåller en siffra 1-5, och koden nedan funkar korrekt för att få ut medelvärde av rösterna.

```
SELECT items.*, avg(value) AS item_ratings
FROM items
LEFT JOIN ratings ON items.itemid=ratings.itemid {$where} GROUP BY items.itemid
{$order}
{$dir} LIMIT 5;
```

Det som jag nu vill göra är att lägga till en funktion som räknar antalet klick. Så jag skapade en tabell, clicks, som innehåller kolumnerna IP, itemid och timestamp, där varje rad motsvarar ett klick. För att få ut antalet klick har jag kommit fram till följande fråga:

```
SELECT items.*, count(clicks.IP) AS item_ratings
FROM items
LEFT JOIN clicks ON items.itemid=clicks.itemid GROUP BY items.itemid
{$order}
{$dir} LIMIT 5;
```

Denna fråga funkar nästan som den ska. Det jag vill är dels att sätta ihop frågorna till en och dels att bara räkna varje IP-adress en gång.
Hjälp emottages tacksamt. :)

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

## #2 — nitro2k01, 2006-07-23T20:43Z

Inte likt mig kanske, men bump!
/r (Även lösningen till problemen var för sig skule uppskattas, samma peron behöver inte lösa båda problemen :) )

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

## #3 — LarsG, 2006-08-02T14:53Z

```
select items.*, 
 (select avg(value)
    from ratings
   where items.itemid=ratings.itemid),
  (select count(distinct ip)
     from clicks
    where items.itemid=clicks.itemid)
from ...
```

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

## #4 — nitro2k01, 2006-08-02T16:00Z

Funkade ju perfa. Men innan jag markerar svaret som slutgiltigt vill jag veta av ren kunskapstörst: Finns det något sätt att ha två olika join, och finns det någon mening med att ha det vid något tillfälle?

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

## #5 — LarsG, 2006-08-03T07:13Z

I ditt fall så går det inte att använda join.

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

## #6 — nitro2k01, 2006-08-03T07:15Z

Känns nästan som join är lite begränsat, eller? Jag har fortfarande inte förstått fullt ut hur man använder join.

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/149316-dubbla-left-join-samt-unique
