---
title: "Lista allt från en tabell grupperat beroende på annan tabell"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/126172-lista-allt-från-en-tabell-grupperat-beroende-på-annan-tabell"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Obbelix"
published: "2005-04-11T16:30:24.000Z"
updated: "2005-04-26T18:55:08.000Z"
replies: 7
views: 296
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/126172-lista-allt-från-en-tabell-grupperat-beroende-på-annan-tabell"
---

# Lista allt från en tabell grupperat beroende på annan tabell

## #1 — Obbelix, 2005-04-11T16:30Z

Nu är jag här igen med mina SQL problem :)

Har en tabell med spelare och sen en tabell som ska hålla koll på vilka spelare som spelar vilka matcher och i vilken "femma".
Går det att få ut datat såhär?

```
1:a Femman
# | Namn      |Spelar (checkbox)
---------------------
2   Olle        Ja
3   Pelle       Ja
12  Kalle       Ja
13  Nisse       Ja
21  Sven        Ja

2:a Femman
# | Namn      |Spelar (checkbox)
---------------------
6   Olle2       Ja
7   Pelle2      Ja
8   Kalle2      Ja
18  Nisse2      Ja
24  Sven2       Ja

Övriga
# | Namn      |Spelar (checkbox)
---------------------
61  Olle3       Nej
37  Pelle3      Nej
```

Tabellerna ser ut som följer

```
game_players (i denna ligger spelarna som spelar aktuell match)

id | game_id | player_id | line (vilken femma)
----------------------------------
1    101       2           1
2    101       3           1
3    101       12          1
4    101       18          2
5    101       24          2
osv...

players (i denna ligger alla spelarna)

id | namn
-------------------------
2    Olle 
3    Pelle 
12   Kalle
18   Nisse2
24   Sven2
osv...
```

Har helt kört fast hur detta ska gå till. Har testat lite med joins å så och fått ut spelarna som ska spela, men sen vill jag ju lista alla de som inte ska spela. Detta för att man ska kunna via checkboxarna kryssa ur en och kryssa i en annan så de byter plats så att säga.
Detta ska vara "startsidan" till en online-rapportering och då man kommer till sidan först finns ju inga spelare som ska spela utan då ska alla listas i nummerföljd. Därefter får man reda på (av laget/tränaren) vilka som ska spela och i vilken femma.
Efter man klickat i och skrivit i "femma" på de spelarna som ska spela ska det sorteras så som jag skrivit, OM det går?
Använder MSSQL till detta.

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

## #2 — LarsG, 2005-04-11T16:41Z

```
select p.player_id,namn,
case when line is null then 'Nej' else 'Ja' end as spelar,line
from players p
left join game_players gp on p.player_id = gp.player_id
and match_id = 101
order by coalesce(line,999)
```

Att visa spelarna i olika femmor är något som du får hantera i din presentationslogik.

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

## #3 — Obbelix, 2005-04-11T18:55Z

Tackar!
Verkar funka helt perfekt. Får testa fullt ut imorrn.

> Att visa spelarna i olika femmor är något som du får hantera i din presentationslogik

Ja, det har jag full koll på.

En fråga... Vad betyder "coalesce(line,999)"?

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

## #4 — Obbelix, 2005-04-11T20:34Z

Tror jag har läst mig till vad "coalesce(line,999)" betyder.
Den sorterar alltså efter "line" i första hand, men är den "NULL" så tar den "999" och eftersom det troligtvis inte finns 999 femmor så placeras den sist.
Har jag fattat rätt?

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

## #5 — Obbelix, 2005-04-12T07:12Z

Nja. Det fungerade inte riktigt som jag hade tänkt, men det kanske inte går heller.
Hade tänkt att i "game_players" tabellen endast ha de spelare som ska spela. Och sen under de lista resterande spelare.
Men om kör den sql-en som jag fick tidigare och kompletterar med en där man får ut alla spelare ur tabellen "players" som inte finns med i "game_players" så skulle det lösa sig. Borde väl gå på nåt sätt, eller?

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

## #6 — Obbelix, 2005-04-26T14:42Z

Fyller nu på med en extra fråga som har med detta att göra.

När jag ska få ut spelare som finns i laget, men inte i "game_players" använde jag denna till en början:

```
SELECT p.* FROM players p
LEFT JOIN game_players gp ON p.id = gp.player_id 
WHERE p.deleted=0 AND p.team_id= xxxx
AND gp.player_id IS NULL"
```

Men har nu insett att det inte går så bra vid match två typ, för då finns ju redan spelaren i tabellen
Har försökt med att lägga till "AND gp.game_id=xxx" men det blir inga resultat av det.

Nån smart som har nåt förslag?

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

## #7 — LarsG, 2005-04-26T18:04Z

```
SELECT p.* FROM players p
LEFT JOIN game_players gp ON p.id = gp.player_id 
AND gp.game_id=xxx
WHERE p.deleted=0 
AND p.team_id= xxxx
AND gp.player_id IS NULL
```

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

## #8 — Obbelix, 2005-04-26T18:55Z

Tack Lars!
Funkar finfint :)

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/126172-lista-allt-från-en-tabell-grupperat-beroende-på-annan-tabell
