---
title: "Count()"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/138425-count"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "tronez"
published: "2005-11-28T16:20:07.000Z"
updated: "2005-11-30T18:31:20.000Z"
replies: 7
views: 459
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/138425-count"
---

# Count()

## #1 — tronez, 2005-11-28T16:20Z

Jag har 2 tabeller som jag skulle vilja få information ur båda två

Tabell 1:

id \| url                  \| userid
1  \| <https://www.test.com>  \| 1
2  \| <https://www.test2.com> \| 1
3  \| <https://www.test3.com> \| 1

Tabell 2:

id \| url                   \| userid
1  \| <https://www.test.com>   \| 1
1  \| <https://www.test2.com> \| 1
1  \| <https://www.test2.com> \| 1
1  \| <https://www.test1.com> \| 1

Ungefär så här ser de ut
Jag vill nu plocka ut information från de båda så att jag får följande utskrift:

url                  \| träffar
<https://www.test.com>  \| 1
<https://www.test2.com> \| 2
<https://www.test1.com> \| 1
<https://www.test3.com> \| 0

```
SELECT s.url, count(s.url) as hits 
FROM tabell1 as s 
INNER JOIN tabell2 as ad 
ON s.url = ad.url 
WHERE s.url!= '' AND s.userid = 1 
GROUP BY s.searchengine 
ORDER BY hits DESC
```

Problemet med denna är att jag inte får med de URL:er som inte får någon 'hits'

Hoppas att någon förstod min önskan.

Använder MySql

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

## #2 — emission, 2005-11-28T16:35Z

Förstod kanske....

```
SELECT s.url, count(ad.url) as hits 
FROM 
(SELECT url,userid FROM tabell1 UNION SELECT url,userid FROM tabell2)
 as s 
LEFT JOIN tabell2 as ad 
ON s.url = ad.url 
WHERE s.url!= '' AND s.userid = 1 
GROUP BY s.url 
ORDER BY hits DESC
```

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

## #3 — tronez, 2005-11-29T12:49Z

tack, det funkade som jag ville, men jag tänkte slänga hit en följdfråga innan jag accpeterar svaret.

i Tabell2 kan det ibland komma en URL som jag inte vill räkna, hur ska man gå tillväga för att lösa det?

Försökte att lägga till i WHERE satsen att 'ad.url != 'en speciell url' men då visades den ändå, men inte alla andra resultat  x(

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

## #4 — LarsG, 2005-11-29T13:25Z

Lägg villkoret i on.

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

## #5 — tronez, 2005-11-29T13:34Z

Med förra koden visades ett X antalet träffar i listan, men om jag nu gjorde som du sa LarsG så fick jag inga träffar, men den visas fortfarande i listan, vilket jag inte vill ha

Något mer tips?

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

## #6 — tronez, 2005-11-29T13:48Z

Löste det! :)

SELECT s.url, count(ad.url) as hits 
FROM 
(SELECT url,userid FROM tabell1 UNION SELECT url,userid FROM tabell2 WHERE url != 'www.test.com')
 as s 
LEFT JOIN tabell2 as ad 
ON s.url = ad.url and ad.url != 'www.test.com'
WHERE s.url!= '' AND s.userid = 1 
GROUP BY s.url 
ORDER BY hits DESC

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

## #7 — LarsG, 2005-11-29T13:49Z

Borde inte villkoret vara på s.url då? 

Jag förstår ju egentligen inte din datamodell och vad som är skillnaden mellan tabell1 och tabell2. Jag tror att det mesta skulle bli enklare om du rätade ut modellen på något sätt.

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

## #8 — tronez, 2005-11-30T18:31Z

Skulle vilha ställa en följdfråga.

```
SELECT s.url, count(ad.searchengine) as hits
FROM
  (SELECT url,cust_id
    FROM ad_coverage
      UNION
    SELECT searchengine,cust_id
    FROM statistics
    WHERE searchengine != 'www.test.com'
  ) as s
LEFT JOIN statistics as ad
ON s.url = ad.searchengine and ad.searchengine != 'www.test.com'
INNER JOIN ad_coverage as p ON
	p.url = s.url
WHERE s.url!= '' AND s.cust_id = 2
GROUP BY s.url
ORDER BY hits DESC
```

Denna kod genererar ungefär följande utskrift:

```
1. www.test1.com 45 hits
2. www.test2.com   4 hits
3. www.test3.com   0 hits
4. www.test4.com   0 hits
```

'

Saken är den att <https://www.test2.com> endast återfinns 2 gånger i databasen, jag kan inte förstå var den får de andra 2 ifrån. Det finns en annan URL som har 2 hits, men den vill jag inte visa eftersom den ej finns i **Tabell 1**. Enda förklaringen jag har är att dessa 2 lägger sig i test2.com träffarna, men jag fattar inte varför

Någon idé\`?

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/138425-count
