---
title: "Vissa poster hämtas två ggr?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/118220-vissa-poster-hämtas-två-ggr"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Jesper T"
published: "2004-12-17T09:57:35.000Z"
updated: "2004-12-21T10:21:51.000Z"
replies: 16
views: 527
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/118220-vissa-poster-hämtas-två-ggr"
---

# Vissa poster hämtas två ggr?

## #1 — Jesper T, 2004-12-17T09:57Z

```
SELECT distinct id,forname,familyname,[username],company[b], case when sgadmingroup = 0 then 'Medlem' else 'Admin' end adm [/b]
FROM user_members LEFT JOIN site_groups, user_groups ON gid = sgid and umid=id
```

 Om jag tar bort det fetmarkerade så returnerar frågan rätt antal poster, har jag den kvar så kommer de personer som finns i kolumnen sgid att visas två/flera gånger. Hur undviker jag det?

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

## #2 — LarsG, 2004-12-17T10:36Z

Beskriv vilka tabeller du har, ge exempeldata och vilket resultat du vill ha.

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

## #3 — Jesper T, 2004-12-17T11:40Z

**Tablell user_members**
id,forname,familyname,username,company
1,karl,olsson,kalle,ikea
2,bill,gates,billy,microsoft 

**Tabell site_groups**
sgid, sgname, sgadmingroup
22, Ikeagrupp, 0
23, Diversgrupp, 0
24, Admingrupp Ikea, 1

**Tabell user_groups**
umid, sgid
1,22
1,24
2,23

**1\|karl\|olsson\|kalle\|ikea\|Admin
2\|bill\|gates\|billy\|microsoft\|Medlem** 

Alltså:
Lista alla medlemmar ur tabellen user_members
Om medlemmen skulle råka tillhöra en admingrupp ( sgadmingrupp = 1) 
Visa 'admin', om inte visa 'medlem'.

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

## #4 — Jesper T, 2004-12-17T16:04Z

Är det taskigt beskrivet eller låter det sig inte göras?

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

## #5 — Jesper T, 2004-12-20T10:07Z

Finns det någon som har ett tips till mig här?

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

## #6 — LarsG, 2004-12-20T10:31Z

Jag återkommer i kväll (har varit bortrest).

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

## #7 — Jesper T, 2004-12-20T10:44Z

Oki. :)

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

## #8 — LarsG, 2004-12-20T17:29Z

```
select id,
 forname,familyname,username,
 case when exists(
  select * 
    from site_groups sg join user_groups ug
      on sg.sgid = ug.sgid
   where sgadmingroup = 1
     and ug.umid = um.id) then 'Admin'
                          else 'Member' end 
  from user_members um
```

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

## #9 — LarsG, 2004-12-20T17:38Z

Eller om databashanteraren heter Access

```
select id,
 forname,familyname,username,
 iif(sgadmingroup is null,'Member','Admin') 
  from (user_members um left join user_groups ug
      on ug.umid = um.id) 
   left join site_groups sg 
     on (ug.sgid = sg.sgid
     and sgadmingroup = 1)
```

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

## #10 — Jesper T, 2004-12-21T09:02Z

Åhhh nej, det skulle jag ha sagt. Det är mySql 4.0.22 som inte hanterar sub-selects. Måste jag köra två separata select-satser då?

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

## #11 — LarsG, 2004-12-21T09:23Z

```
select id,
 forname,familyname,username,
 case when sgadmingroup is null then 'Member'
else 'Admin' end
  from user_members um left join user_groups ug
      on ug.umid = um.id
   left join site_groups sg 
     on ug.sgid = sg.sgid
     and sgadmingroup = 1
```

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

## #12 — Jesper T, 2004-12-21T09:42Z

Det blir fortfarande dubletter av de medlemmar som ex. är medlem i en grupp och admin i en annan.
1\|karl\|olsson\|kalle\|ikea\|Admin
1\|karl\|olsson\|kalle\|ikea\|Medlem
2\|bill\|gates\|billy\|microsoft\|Medlem
Även fast jag plockar med distinct i frågan.

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

## #13 — toha, 2004-12-21T10:13Z

Jag vet inte om följande fungerar i mySql, har bara testat på SQLServer.

```
select
	um.id,
	um.forname,
	case max(sgadmingroup)
		when 1 then 'Admin'
		else 'Medlem'
	end AS adm
from
	user_members um

	left outer join
	user_groups ug
	on
	ug.umid = um.id

	left outer join
	site_groups sg
	on
	sg.sgid = ug.sgid

group by
	um.id,
	um.forname
```

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

## #14 — LarsG, 2004-12-21T10:16Z

Hmm, jo det stämmer. Den första frågan fungerar ju så du skulle kunna byta till 4.1 

Jag får fundera lite.

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

## #15 — toha, 2004-12-21T10:17Z

Bör tilläggas att MAX() inte fungerade på bit-fält i sqlserver så jag satte den som en int så fungerade det, men det kanske inte är något problem om i mySql? :o

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

## #16 — LarsG, 2004-12-21T10:20Z

```
select id,
 forname,familyname,username,
 min(case when sgadmingroup is null then 'Member'  
else 'Admin' end)
  from user_members um left join user_groups ug
      on ug.umid = um.id
    left join site_groups sg          
     on ug.sgid = sg.sgid
     and sgadmingroup = 1
group by
id,forname,familyname,username
```

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

## #17 — Jesper T, 2004-12-21T10:21Z

toha din funkade utmärkt, tack. :)
LarsG du är skall ha en stor eloge du med. Tack! 
Mitt webbhotell verkar inte vilja uppgradera till 4.1 av ngn anledning. :(

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/118220-vissa-poster-hämtas-två-ggr
