---
title: "Koppla ihop två tabeller"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/124669-koppla-ihop-två-tabeller"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "asp"
published: "2005-03-18T13:12:04.000Z"
updated: "2005-03-20T18:39:20.000Z"
replies: 13
views: 451
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/asp/124669-koppla-ihop-två-tabeller"
---

# Koppla ihop två tabeller

## #1 — asp, 2005-03-18T13:12Z

Jag vill hämta medlemmar ur tabellen Arbetsplatser där han med ID = 2 också arbetar på.

```
Set rs = objConn("SELECT TOP 1 * FROM Medlemmar WHERE id = " & ID)

Set rs2 = objConn("SELECT * FROM Arbetsplatser WHERE ID = " & rs("arbID"))
```

Kan man slå ihop dessa?

En anna fråga.

Det är såhär att jag sparar alla säsonger i en tabell som heter Säsonger som har följande fält.
ID anvID Omg Antal Info

När jag slumpar ut en medlemlista vill jag se om någon användare har kommit etta någon gång.

1\. Man tar alla poster ur Säsonger som har samma arbID som han som finns i Medlemmar med ID = 2.

2\. Man sorterar tabellen via Antal rätt och går igenom säsong för säsong. Om just personen man är på i Medlemslistan (loopen) kom etta skall man skriva ut Vann säsäong XX. Dock inte om Säsong = NUVARANDE SÄSONG.

hoppas verkligen någon kan hjälpa mig

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

## #2 — Palle, 2005-03-18T15:01Z

> Kan man slå ihop dessa?

Ja, detta borde fungera:

```
[red]Set rs = objConn.Execute("SELECT * FROM Medlemmar T1 INNER JOIN Arbetsplatser T2 ON T1.arbID = T2.ID WHERE (T1.ID = "& ID &")")[/red]
```

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

## #3 — asp, 2005-03-18T16:41Z

Den visar tyvärr bara en medlem då. Jag vill visa alla som arbetar på det företaget.

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

## #4 — LarsG, 2005-03-18T16:46Z

Beskriv hur tabellerna är definierade.

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

## #5 — asp, 2005-03-18T19:54Z

Vad menar du?

Såhär ser de ut

ARBETSPLATS
id namn

MEDLEMMAR
id arbId namn

sedan finns det blir fält fast de är irrelevanta..

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

## #6 — LarsG, 2005-03-19T14:10Z

```
select <kolumnerAvIntresse>
from medlemmar m inner join arbetsplats a
 on m.arbid = a.id
where m.arbId in (
  select arbId 
    from medlemmar 
  where id = 2)
```

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

## #7 — asp, 2005-03-19T15:21Z

Tack LarsG, det blev tillslut du som ordnade detta! :)

Vill inte vara krävande, men är det någon som vill försöka sig på fråga 2? Här kommer en bättre förklaring.

Såhär ser säsongtabellen ut:

```
ID	anvID	sasong	ratt	omg
1	3	1	23	10
2	6	1	13	9
3	4	2	12	7
```

Det jag vill att den skall plocka ut är att den först plockar ut de användare som arbetar på samma arbetsplats. Precis om koden LarsG gjorde ovanför här.

Sedan skall den loopa igenom alla säsonger (börja på det lägsta och uppåt). Och den skall sortera via antal rätt och plocka ut ID på den som hade flest rätt.

Tanken är att i medlemslistan skall den se om någon har kommit etta någon säsong.

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

## #8 — LarsG, 2005-03-19T15:46Z

```
select <kolumnerAvIntresse>,
(select 'Vann senast säsong ' || cast(max(sasong) as varchar(10)) 
  from sasonger s1
 where anvid = m.id
   and sasong <> <nuvarandeSäsong>
   and ratt in (
    select max(ratt)
      from sasonger s2
     where s1.sasong = s2.sasong)) as vinare
from medlemmar m inner join arbetsplats a
 on m.arbid = a.id
where m.arbId in (
  select arbId 
    from medlemmar 
  where id = 2)
```

Ovanstående kommer förmodligen inte att fungera direkt. Det är visserligen skrivet enligt standard men det är säkert någon detalj som inte stöds av den DBMS  som du använder.

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

## #9 — asp, 2005-03-19T16:25Z

Jag använder Access.

```
Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel. i frågeuttrycket '(select 'Vann senast säsong ' || cast(max(sasong) as varchar(10)) from sasonger s1 where anvid = m.id and sasong <> 111 and ratt in (select max(ratt) from sasonger s2 where s1.sasong = s2.sasong))'.
/tips/save.asp, line 7
```

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

## #10 — LarsG, 2005-03-19T16:28Z

```
select <kolumnerAvIntresse>,
(select 'Vann senast säsong ' & cstr(max(sasong)) 
  from sasonger s1
 where anvid = m.id
   and sasong <> 111
   and ratt in (
    select max(ratt)
      from sasonger s2
     where s1.sasong = s2.sasong)) as vinare
from medlemmar m inner join arbetsplats a
 on m.arbid = a.id
where m.arbId in (
  select arbId 
    from medlemmar 
  where id = 2)
```

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

## #11 — asp, 2005-03-19T16:35Z

```
Set rs = objConn.Execute("select *, (select 'Vann senast säsong ' & cstr(max(sasong)) from sasonger s1 where anvid = m.id and sasong <> 111 and ratt in (select max(ratt) from sasonger s2 where s1.sasong = s2.sasong)) as vinare from medlemmar m inner join arbetsplatser a on m.arbid = a.id where m.arbId in (select arbId from medlemmar where id = 1)")
```

```
Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][Drivrutin för ODBC Microsoft Access] Typblandningsfel i villkorsuttryck.
/tips/save.asp, line 7
```

Alltså i den SQL satsen du gjorde ovanför vill jag använda. Sedan kan man väl köra ytterliggare denna SQL sats för att kontrollera om medlemmen har några vinster? Inte bara senaste. Då är det väl bara att ändra where id = "2" till id = objRs("id")

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

## #12 — LarsG, 2005-03-20T14:44Z

Nedantsående är det enda nya villkoret som skulle kunna ställa till ett typblandningsfel som jag ser.

```
anvid = m.id
```

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

## #13 — asp, 2005-03-20T15:46Z

SKall testa när jag kommer hem. Vill passa på att fråga en annan sak. Eftersom SQL satsen hanterar flera tabeller samtidigt så tar den ut ID från fel tabell. Om jag vill hämta ID från medlemmar så tar den från Arbetsplatser. Jag syftar på SQL satsen som du skrev i inlägg 10552. Går detta att ordna ?

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

## #14 — LarsG, 2005-03-20T18:39Z

Ange explicit alla kolumner som du vill hämta istället  för att använda select \*.

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/124669-koppla-ihop-två-tabeller
