---
title: "Får ut dubbla poster"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/167816-får-ut-dubbla-poster"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "jimpa"
published: "2008-01-06T00:24:52.000Z"
updated: "2008-01-09T18:14:57.000Z"
replies: 8
views: 733
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/167816-får-ut-dubbla-poster"
---

# Får ut dubbla poster

## #1 — jimpa, 2008-01-06T00:24Z

Hej 

Jag har en tabell som heter permisson. I den tabellen sparas GroupID den posten finns alltid. Ibland sparas även en ny post med ett MedlemsID

Problemet är att finns det en post med MedlemsID så får jag ju ut dubbla poster

Själva where satsen i sql frågan ser ut ungefär så här

WHERE MemberID = " & intLoggedInMemberID & " OR "GroupID = " & intLoggedInGroupID & " "

Går det att direkt i where satsen bara hämta posten med MemberID om den finns och hämta posten med GroupID i andra hand?

MVH Jimpa

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

## #2 — jimpa, 2008-01-06T10:47Z

Jag förtydligar mig lite :)

Hela SQL frågan kan se ut så här:

```
 
 	strSQL = "SELECT Forums.fName, Forums.fPassword, Forums.fLocked, "
 	strSQL = strSQL & "Permissions.* "
 	strSQL = strSQL & "FROM (Forums "
 	strSQL = strSQL & "INNER JOIN Permissions ON Forums.ForumID = Permissions.pForumID) " 
	strSQL = strSQL & "WHERE Forums.ForumID = " & intForumID & " "
	strSQL = strSQL & "AND (Permissions.pMemberID = " & intLoggedInMemberID & " OR Permissions.pGroupID = " & intLoggedInMemberGroupID & ") "
```

Problemet är nu:
Om detta uppfylls: *Permissions.pMemberID = " & intLoggedInMemberID*
Så ska inte denna posten hämtas: *Permissions.pGroupID = " & intLoggedInMemberGroupID*

Går detta att göra direkt i SQL satsen? Eller måste jag först kolla om den posten existerar med en annan SQL sats?

Skriva SELECT TOP 1.... skulle nog funka just i detta fall men jag har en massa andra sql frågor där fler poster ska hämtas, så det skulle inte bli en bra lösning dock!

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

## #3 — aasah, 2008-01-06T11:16Z

Den fråga jag ställer mig är vad intLoggedInMemberID har för värde när detta inte stämmer? Dvs rent värdemässigt, när behöver du plocka det från gruppid:t? Om det finns något bra svar på den frågan kan antagligen IFF eller CASE hjälpa upp saken.

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

## #4 — jimpa, 2008-01-06T12:36Z

Nja intLoggedInMemberID kan ju ha vilket ID nummer som helst förutom 0 (noll)

Den här raden talar väl för när jag behöver plocka det från gruppid?

	

```
strSQL = strSQL & "AND (Permissions.pMemberID = " & intLoggedInMemberID & " OR Permissions.pGroupID = " & intLoggedInMemberGroupID & ") "
```

Lås säga att en medlem gruppid 1 och medlems id 1
i tabellen Permission kan det se ut så här:

pForumID : pGroupID : pMemberID

    1              1               0    \<---   Den här posten är default o finns för alla medlemmar  
    1              1               1    \<---  Finns den här gäller inte den ovanstående posten för den här medlemmen
    1              1               2
    1               1              3

Om medlemmen istället har id't 4 Då ska den defaulta posten gälla, alltså den med member id 0

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

## #5 — LarsG, 2008-01-06T17:02Z

```
strSQL = _
 "SELECT Forums.fName, Forums.fPassword, Forums.fLocked, " & _
 "Permissions.* " & _
 "FROM Forums " & _
 "INNER JOIN Permissions ON Forums.ForumID = Permissions.pForumID " & _
 "WHERE Forums.ForumID = " & intForumID & _
 " AND (Permissions.pMemberID = " & intLoggedInMemberID & _
 " OR (Permissions.pGroupID = " & intLoggedInMemberGroupID & _
 " and not exists (select * from Permissions where " & _
 " Permissions.pMemberID = " & intLoggedInMemberID & ")))"
```

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

## #6 — jimpa, 2008-01-06T21:50Z

På rätt väg :) Men den funkar inte riktigt som jag har tänkt mig.

Den tar bara med poster när medlems numret uppfylls. Har medlemen nr 4 som i mitt ex. ovan så tas inga poster med. Men meningen är då att den defaulta ska gälla, alltså den posten som har medlemsnr. 0

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

## #7 — jimpa, 2008-01-09T16:35Z

Ingen som har en susning?

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

## #8 — Peter S, 2008-01-09T17:12Z

```
strSQL = _
 "SELECT Forums.fName, Forums.fPassword, Forums.fLocked, " & _
 "Permissions.* " & _
 "FROM Forums " & _
 "INNER JOIN Permissions ON Forums.ForumID = Permissions.pForumID " & _
 "WHERE Forums.ForumID = " & intForumID & _
 " AND (Permissions.pMemberID = " & intLoggedInMemberID & _
 " OR (Permissions.pGroupID = " & intLoggedInMemberGroupID & _
 " and not exists (select * from Permissions where " & _
 " Permissions.pMemberID = " & intLoggedInMemberID & ")) " & _
 " OR (not exists (select 1 from Permissions where Permissions.pMemberID = " & intLoggedInMemberID & ") and " & _
 "     not exists (select 1 from Permissions where Permissions.pGroupID  = " & intLoggedInMemberID & ") and " & _
 "     Permissions.pMemberID = 0))"
```

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

## #9 — jimpa, 2008-01-09T18:14Z

Nu verkar det funka   :)  Tusen tack (y)

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/167816-får-ut-dubbla-poster
