---
title: "Hämta information som hör ihop från två tabeller"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/59653-hämta-information-som-hör-ihop-från-två-tabeller"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "trexter.com"
published: "2002-11-19T06:42:52.000Z"
updated: "2002-11-19T19:54:39.000Z"
replies: 23
views: 770
page: 1
pages: 2
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/59653-hämta-information-som-hör-ihop-från-två-tabeller"
---

# Hämta information som hör ihop från två tabeller

_Sida 1 av 2._

## #1 — trexter.com, 2002-11-19T06:42Z

Säg att jag ska göra ett register över mitt godis (eller inte).

Först tabell ett:
1 - Fazer
2 - Marabou
3 - Ahlgrens

Tabell två:
1 - 1 - Nisses saltisar
2 - 1 - Sega kolor
3 - 1 - Guffegott
4 - 2 - Med luftbubblor
5 - 2 - Utan luftbubblor
6 - 3 - Sega bilar

Här hör alltså olika produkter till olika fabrikat. Så har jag gjort förrut för att loopa ut innehållet i dessa två tabellerna:

```
' SELECT som  hämtar alla fabrikat
' Loopar igenom alla posterna
'    I loopen sriver jag ut fabrikatet
'    Sedan kör jag en ny SELECT som hämtar alla sorters godis 
'    från tabell två som har samma "kopplings-id" som det i det 
'    aktuella "recordet".
'    ... skriver alltså ut fabrikat överst och under olika sorter.
' Slut på loop
```

Är detta ett bra sätt? Kan man fixa med på något annat sätt utan att använda två SELECTS och RecordSets?

 :)

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

## #2 — Thomasa, 2002-11-19T08:01Z

hmm, du kan väl göra nått åt de här hållet:

```
sql="SELECT tabellett.tillverkarid,tabellett.namn,tabelltva.tillverkarid,tabelltva.godisnamn FROM tabellett,tabelltva"
```

ja sen kan du ju göra uraval som du vill., funkar det där tror du?

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

## #3 — OveRRidE, 2002-11-19T08:01Z

Använd en JOIN:

Tabell ett = tManu:
\* ID
\* Name

Tabell två = tProd:
\* ID 
\* ManuID
\* Name

```
SELECT *, tm.Name as ManuName FROM tManu tm
INNER JOIN tProd tp ON tm.ID = tp.ManuID
```

```
do until rs.eof
   if rs("ManuName") <> strBef then
      response.write rs("ManuName")
   end if

   response.write("name") & "<br>"

   strBef = rs("ManuName")
rs.movenext
loop
```

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

## #4 — Thomasa, 2002-11-19T08:02Z

fast det Override skrev ser ju stabilare ut :)

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

## #5 — trexter.com, 2002-11-19T13:25Z

Vad står strBef för? (tack förresten!)

 :)

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

## #6 — OveRRidE, 2002-11-19T14:27Z

strBef är en variabel som innehåller den föregående radens värde av kolumnen Manu i tabellen tManu. 

Alltså, om strBef inte är likamed rs("manu") så skall rs("manu") skrivas ut, så att de sorteras efter tillverkare (manu).

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

## #7 — trexter.com, 2002-11-19T15:14Z

Så Bef står för Before? :q 
Jag har lite problem, vet inte riktigt hur jag ska få ihop det.

```
SELECT *, tm.Name as ManuName FROM tManu tm
INNER JOIN tProd tp ON tm.ID = tp.ManuID
```

```
Microsoft JET Database Engine error '80040e14' 
Syntax error (missing operator) in query expression 'prioritet INNER JOIN Artiklar a ON ak.ID = a.kategori'.
```

 :)

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

## #8 — LarsG, 2002-11-19T15:20Z

Kan du visa koden. Felmeddelandet hänger inte ihop med den kod du visar. Vad är ak?

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

## #9 — OveRRidE, 2002-11-19T15:21Z

Ja. Bef är en förkortning som jag använde. 'Str' för String (datatypen) och 'Bef' för Before (före). Detta är alltså inget som är inbyggt i ADO, recordsets eller liknande, det är bara en variabel som håller koll på om den skall skriva ut en ny tillverkare eller inte, eftersom de grupperas och listas så. :)

Alltså; SQL-satsen skall vara på *en* rad, jag skrev den bara på två, för att förenkla. :)

Alltså t.ex: 

```
set recset = connect.execute("SELECT *, tm.Name as ManuName FROM tManu tm INNER JOIN tProd tp ON tm.ID = tp.ManuID")
```

Det ser ut som om du har nåt fel i din SQL, kan du skriva ut hela sql-satsen så vi får se om det är nåt fel där?

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

## #10 — trexter.com, 2002-11-19T15:24Z

Jo, det gör det faktiskt. Ak skulle vara "smeknamnet" för tabellen ArtikelKategoerier (är inte alls säker på att jag förstod hur man skulle göra).

Tabellerna heter:
Artiklar
ArtikelKategorier

Kolummerna heter:
id  datum ettor tvaor treor fyror femmor klick kategori prioritet titel forfattare artikeln

samt:
gruppnamn id prioritet 

Detta vill jag presentera i en tabell och på så sätt få något slags "artikelindex".
ettor, tvoar, treor osv. är till en omröstning...

 :)

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

## #11 — trexter.com, 2002-11-19T15:26Z

LarsG: Ojsan, du hade rätt. Råkade posta OveRRides kod.. :)

```
Connect.Execute "SELECT *, ak.gruppnamn FROM ArtikelKategorier ak ORDER BY prioritet INNER JOIN Artiklar a ON ak.ID = a.kategori"

SELECT *, ak.gruppnamn FROM ArtikelKategorier ak ORDER BY prioritet INNER JOIN Artiklar a ON ak.ID = a.kategori
```

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

## #12 — OveRRidE, 2002-11-19T15:29Z

```
SELECT * FROM artiklar a INNER JOIN artikelKategorier ak ON a.kategori = ak.id
```

Skriv ut med:

```
do until rs.eof
   if rs("ManuName") <> strBef then
      response.write "<b>" & rs("artikelkategori") & "</b><br>"
   end if

   response.write rs("artikel") & "<br>"

   strBef = rs("artikelkategori")
rs.movenext
loop
```

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

## #13 — trexter.com, 2002-11-19T15:38Z

Tack Landsorganisationen!  :bire 
(Hajade ni den? Antagligen. ;) )

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

## #14 — OveRRidE, 2002-11-19T16:04Z

> **trexter.com skrev:**
>
> Tack Landsorganisationen!  :bire 
> (Hajade ni den? Antagligen. ;) )

Jag hajade den inte. :q

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

## #15 — trexter.com, 2002-11-19T16:13Z

Landstings + Organisationen = L + O = LO
LarsG + OveRRidE = L + O = LO
Ok, den var dålig!  :e 

En sak, hur får jag med ett id (från kolummen id alltså) från Artikelar? Försöker jag med rs("id") blir det "Item cannot be found in the collection corresponding to the requested name or ordinal. "

 :)

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

## #16 — LarsG, 2002-11-19T16:35Z

Hur ser select-frågan ut?

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

## #17 — trexter.com, 2002-11-19T17:06Z

```
GetArtiklar = "SELECT * FROM artiklar a INNER JOIN artikelKategorier ak ON a.kategori = ak.id"
```

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

## #18 — LarsG, 2002-11-19T17:14Z

Då skall det inte vara något problem att få fram id med rs("id"). Hur ser resten ut? Använder du rätt recordset?

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

## #19 — trexter.com, 2002-11-19T17:48Z

```
Sub Artiklar()

GetArtiklar = "SELECT * FROM artiklar a INNER JOIN artikelKategorier ak ON a.kategori = ak.id"
Set rs = Connect.Execute(GetArtiklar)
Response.Write "<table cellspacing=""0"" cellpadding=""4"">"
graellervitrad = 1
do until rs.eof
   graellervitrad = graellervitrad * -1
   if rs("gruppnamn") <> strBef then
      response.write "<tr><td width=""155"" class=""forstaraden"">" & rs("gruppnamn") & "</td><td width=""80"" class=""forstaraden"">Besökt</td><td width=""60"" class=""forstaraden"">Betyg</td><td width=""140"" class=""forstaraden"">Skrevs</td><td width=""100"" class=""forstaraden"">Författare</td></tr>"
   end if
   if graellervitrad = -1 then
      graellervitruta = 1
   else
      graellervitruta = 2
   end if
      response.write "<tr><td width=""155"" class=""radtyp"&graellervitruta&"""><a href=""dennasidan.asp?vad=read&vilken="&rs("id")&""" class=""inbakadlank"">" & rs("titel") & "</a></td><td width=""80"" class=""radtyp"&graellervitruta&""">" & rs("klick") & " gånger</td><td width=""60"" class=""radtyp"&graellervitruta&""">N/A</td><td width=""140"" class=""radtyp"&graellervitruta&""">" & rs("datum") & "</td><td width=""100"" class=""radtyp"&graellervitruta&""">" & rs("forfattare") & "</td></tr>"

   strBef = rs("gruppnamn")
rs.movenext
loop

rs.Close
set rs = nothing

Response.Write "</table>"
End Sub
```

 :)

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

## #20 — trexter.com, 2002-11-19T18:44Z

Hur ska jag ändra SQL:en för att kunna utnyttja id:et?
Saken är väl den att två kolummer heter id, därför b´lir det problem.

eller?

 :)

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/59653-hämta-information-som-hör-ihop-från-två-tabeller  
Nästa sida: https://www.webforum.nu/amne/asp/59653-hämta-information-som-hör-ihop-från-två-tabeller/page2.md
