---
title: "Join-problem"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/173632-join-problem"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Thompa__85"
published: "2008-08-25T15:03:48.000Z"
updated: "2008-09-01T08:45:19.000Z"
replies: 11
views: 545
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/173632-join-problem"
---

# Join-problem

## #1 — Thompa__85, 2008-08-25T15:03Z

Hej!

Jag skulle behöva lite hjälp här med ett join-problem.
Så här är upplägget:

I kampanjer_new listar jag olika kampanjer där varje kampanj har ett unikt kampanj_id.

I kampanjer_done listar jag de kampanjer som varje medlem har förbrukat. *intMember* för medlemmens idnummer och *intKampanj* för kampanjens id.

Nu vill jag på min kampanjsida göra så att de kampanjer man redan förbrukat Inte dyker upp i listan. Och då behöver jag en join för att det ska gå snabbt och smidigt.

Så här långt har jag kommit:

```
SQL = "SELECT k.kampanj_id, k.strTitel, k.strImp, k.strText, k.intGratis, k.strDatum, k.strPic, k.filter18, k.filter15, k.filter25, " _
	& "k.intTjej, k.intNyh, k.intTav, k.intErb, k.intGra, k.intAntal, k.strProd, d.intMember, d.intKampanj " _
	& "FROM kampanjer_new k join kampanjer_done d on d.intMember = "& lngID &" " _
	& "WHERE bla bla bla"
```

Hur lägger jag in en kontroll för att se om medlemmen har utnyttjat kampanjen eller ej.

Hoppas ni förstår :)

mvh Andreas

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

## #2 — Eclipse, 2008-08-25T16:03Z

Förslag:
\[kampanjer\]
intID
dteCreated
intUserID
bolIsUsed \<-- true/false

\*\*\*
Du har alla kampajer på ETT ställe, bara att markera vilken som är använd.

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

## #3 — Thompa__85, 2008-08-25T16:34Z

> **Eclipse skrev:**
>
> Förslag:
> \[kampanjer\]
> intID
> dteCreated
> intUserID
> bolIsUsed \<-- true/false
> 
> 
> \*\*\*
> Du har alla kampajer på ETT ställe, bara att markera vilken som är använd.

Hängde inte riktigt med där?   :r

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

## #4 — Zaiman, 2008-08-25T16:36Z

Flyttas från ASP

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

## #5 — LarsG, 2008-08-25T17:59Z

```
SQL = "SELECT k.kampanj_id, k.strTitel, k.strImp, k.strText, k.intGratis, k.strDatum, k.strPic, k.filter18, k.filter15, k.filter25, " _
	& "k.intTjej, k.intNyh, k.intTav, k.intErb, k.intGra, k.intAntal, k.strProd "  _
	& "FROM kampanjer_new k "  _
	& "WHERE not exists " _
        & "(select * from kampanj_done d where d.kampanj_id = k.kampamj_id and d.intMember = " _
        &  lngID & ")"
```

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

## #6 — Thompa__85, 2008-08-26T06:35Z

> **LarsG skrev:**
>
> ```
> SQL = "SELECT k.kampanj_id, k.strTitel, k.strImp, k.strText, k.intGratis, k.strDatum, k.strPic, k.filter18, k.filter15, k.filter25, " _
> 	& "k.intTjej, k.intNyh, k.intTav, k.intErb, k.intGra, k.intAntal, k.strProd "  _
> 	& "FROM kampanjer_new k "  _
> 	& "WHERE not exists " _
>         & "(select * from kampanj_done d where d.kampanj_id = k.kampamj_id and d.intMember = " _
>         &  lngID & ")"
> ```

Tack!
Det fungerar, dock tar det fortfarande grymt lång tid att få fram resultaten. (Måste söka igenom 300.000 poster för varje kampanj..).

Samt att jag inte lyckas få in min Where-sats som jag hade i orginal-koden. Finns det nåt annat sätt så jag kan få det mer snabbladdat?

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

## #7 — überfuzz, 2008-08-26T06:45Z

Hur ser tabellerna ut? Med smart design borde inte 300 rader ta lång tid att söka igenom.

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

## #8 — Thompa__85, 2008-08-26T07:01Z

> **überfuzz skrev:**
>
> Hur ser tabellerna ut? Med smart design borde inte 300 rader ta lång tid att söka igenom.

Kampanjer_new:
kampanj_id, samt en del information om kampanjen.

Kampanjer_done:
intKampanj, intMember

Så när jag ska skriva ut kampanjerna så vill jag att de kampanjer som är förbrukade av medlemmen ej visas i listan.

IF intKampanj = kampanj_id Where intMember = mitt ID Then
'Visa inte

Så är det ju kortfattat, men får inte det att ladda snabbt :/

Tips?

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

## #9 — Thompa__85, 2008-08-28T13:10Z

Nu fick jag till så att det fungerar.

```
SQL = "SELECT k.kampanj_id, k.strTitel, k.strImp, k.strText, k.intGratis, k.strDatum, k.strPic, k.filter18, k.filter15, k.filter25, " _
	& "k.intTjej, k.intNyh, k.intTav, k.intErb, k.intGra, k.intAntal, k.strProd "  _
	& "FROM kampanjer_new k "  _
	& "WHERE not exists " _
       & "(select * from kampanjer_done d where d.intKampanj = k.kampanj_id and d.intMember = " _
       &  lngID &") AND intGra = '1' "
Response.Write SQL
Set RS = Connect.execute(SQL)
```

Dock tar det förbaskat lång tid att ladda sidan, ca 20 sekunder.. Trodde det jag skulle slippa med join?

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

## #10 — Peter S, 2008-08-28T17:07Z

Testa

```
SELECT k.kampanj_id
     , k.strTitel
     , k.strImp
     , k.strText
     , k.intGratis
     , k.strDatum
     , k.strPic
     , k.filter18
     , k.filter15
     , k.filter25
     , k.intTjej
     , k.intNyh
     , k.intTav
     , k.intErb
     , k.intGra
     , k.intAntal
     , k.strProd 
  FROM kampanjer_new k 
LEFT
  JOIN kampanjer_done d
    ON k.kampanj_id = d.intKampanj
   AND d.intMember = lngId
 WHERE d.intKampanj IS NULL
   AND k.intGra = '1'
```

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

## #11 — Thompa__85, 2008-09-01T08:42Z

> **Peter S skrev:**
>
> Testa
>
>
> ```
> SELECT k.kampanj_id
>      , k.strTitel
>      , k.strImp
>      , k.strText
>      , k.intGratis
>      , k.strDatum
>      , k.strPic
>      , k.filter18
>      , k.filter15
>      , k.filter25
>      , k.intTjej
>      , k.intNyh
>      , k.intTav
>      , k.intErb
>      , k.intGra
>      , k.intAntal
>      , k.strProd 
>   FROM kampanjer_new k 
> LEFT
>   JOIN kampanjer_done d
>     ON k.kampanj_id = d.intKampanj
>    AND d.intMember = lngId
>  WHERE d.intKampanj IS NULL
>    AND k.intGra = '1'
> ```

Koden fungerar, men tar fortfarande riktigt lång tid att ladda.. upp emot 20-30 sekunder.
Är det för att den söker igenom 300.000 poster som det tar sån tid?

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

## #12 — Thompa__85, 2008-09-01T08:45Z

Edit:
Ändrade index på intKampanj och nu verkar de rulla på bra.

Tack för all hjälp :)

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/173632-join-problem
