---
title: "Räkna från tre olika tabeller"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/124065-räkna-från-tre-olika-tabeller"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Qimen"
published: "2005-03-09T16:49:16.000Z"
updated: "2005-03-09T20:33:32.000Z"
replies: 5
views: 274
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/124065-räkna-från-tre-olika-tabeller"
---

# Räkna från tre olika tabeller

## #1 — Qimen, 2005-03-09T16:49Z

Hej,

Har försökt men får inte rätt på min sql-fråga. Det jag vill göra är:

1\. Räkna antal poster i pw_users.
2\. Räkna antal poster i pw_users som har system_access = 256.
3\. Räkna antal poster i pw_ticket (här problemmet kommer in).

```
SELECT COUNT(*) AS medlemmar,
sum(case when system_access = 256 then 1 else 0 end) AS vip,
FROM pw_users
```

Så långt fungerar det bra men att lägga till den 3:e saken vill sig inte. DBMS är MySQL 4.0 så subqueries går inte. Det kanske inte gå att uföra då? :)
Hade varit trevligt om det gått att göra något i stil med detta: 

```
SELECT COUNT(*) AS medlemmar,
sum(case when system_access = 256 then 1 else 0 end) AS vip,
sum() AS t.vip,
FROM pw_users, t AS pw_ticket
```

Men det vill sig inte.

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

## #2 — LarsG, 2005-03-09T20:00Z

```
SELECT COUNT(*) AS medlemmar,
sum(case when system_access = 256 then 1 else 0 end) AS vip
FROM pw_users
union all
select count(*) , -1
from pw_ticket
```

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

## #3 — Qimen, 2005-03-09T20:09Z

Tack! :)

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

## #4 — Qimen, 2005-03-09T20:20Z

Satt och testa lite själv. Är där någon prestandaförlust eller något annat negativt om man kör såhär: 

```
SELECT 'medlemmar' AS typ, COUNT(*) AS varde
FROM pw_users
union all
SELECT 'vip', count(*)
FROM pw_users WHERE system_access = 256
union all
SELECT 'online', count(*)
FROM pw_ticket
```

Ger samma resultat. :)

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

## #5 — LarsG, 2005-03-09T20:26Z

Det ger sämre prestanda eftersom du kommer att söka igenom pw_users två gånger. Om du har ett index på system_access eller om du inte har så många poster i tabellen så borde det inte ha någon betydelse.

Rent estetiskt så föredrar jag din lösning.

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

## #6 — Qimen, 2005-03-09T20:33Z

Okej, där ser man. Då kör jag på ditt förslag. :)

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/124065-räkna-från-tre-olika-tabeller
