---
title: "SQL Join's"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/64108-sql-join-s"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "CatZ"
published: "2003-01-08T06:17:09.000Z"
updated: "2003-01-09T15:55:50.000Z"
replies: 19
views: 354
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/64108-sql-join-s"
---

# SQL Join's

## #1 — CatZ, 2003-01-08T06:17Z

```
SQL = " SELECT tblLag.*, tblMatcher.* " _
  & " FROM tblLag " _
  & " LEFT JOIN tblMatcher " _
  & " ON (tblLag.LagID = tblMatcher.BortaID) " _
  & " AND (tblLag.LagID = tblMatcher.HemmaID); "
```

Hoppsan vart inte meningen att posta riktigt än, iaf ovanstående kod ger mig inte så mycket va?

Ska hämta borta delen i matchtabellen till en av samma tblLag och hemma delen i matchtabellen till andra av samma tbLag... måste man använda en massa AS då eller ?

Som det är nu när jag sitter och pular får jag ju bara fram lag infon :) om man kunde spara själva frågan som 2 skillda tabeller så kan allt "Hemma" hamna i en och "borta" i en..

hmm hur gör man :q

Jag menar det vore GANSKA tradigt att köra 3 SQL satser men det kanske man måste ?

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

## #2 — CatZ, 2003-01-08T06:46Z

Typ som den här koden jag menar herregud, det MÅSTE ju gå att göra det snyggare ?

```
<%
Dim SQL, SQL2, SQL3, objRS, objRS2, objRS3, typ
typ = "1"
SQL = " SELECT * FROM tblLag"
Set objRS = dbCom.Execute(SQL)

Dim LagID, Klubb
Response.Write "<table cellspacing='0' cellpadding='3'>" _
& "<tr><td>LagID</td><td>LagNamn</td><td>ImpTotal</td>"		
Do While Not objRS.EOF
LagID = objRS("LagID")
Klubb = objRS("Klubb") & " " & objRS("Kontakt")

SQL2 = " SELECT BortaID, BortaIMP, BortaVP "_
& " FROM tblMatcher " _
& " WHERE BortaID = " & LagID & " "
Set objRS2 = dbCom.Execute(SQL2)

Dim BortaIMP, BortaVP
Do While Not objRS2.EOF
BortaImp = objRS2("BortaImp")
BortaVP = objRS2("BortaVP")
objRS2.MoveNext
Loop

SQL3 = " SELECT HemmaID, HemmaIMP, HemmaVP "_
& " FROM tblMatcher " _
& " WHERE HemmaID = " & LagID & " "
Set objRS3 = dbCom.Execute(SQL3)

Dim HemmaIMP, HemmaVP
Do While Not objRS3.EOF
HemmaIMP = objRS3("HemmaIMP")
HemmaVP = objRS3("HemmaVP")
objRS3.MoveNext
Loop

Response.Write "<tr><td>" & LagID & "</td><td>" & Klubb & "</td><td>" _
& HemmaVP & "+" & BortaVP & "=" & HemmaVP + BortaVP & "</td></tr>"

objRS.MoveNext
Loop

Response.Write	"</table>"

%>
```

Ger i alla fall följande resultat i webläsaren:

```
LagID LagNamn             ImpTotal
1        Lammhult Mikael    1+1=2
2        Växjö Gunnar         2+2=4
3        Växjö Håkan           3+3=6
4        Lammhult Egon      4+4=8
5        Grimslöv Greger     5+5=10
6        Alvesta Bocken      6+6=12
```

Och är rätt men det känns som otroligt slöseri med resurser och kod.

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

## #3 — CatZ, 2003-01-08T20:25Z

Hur slår jag ihop följande 3 SQL frågor ?

```
SQL = " SELECT * FROM tblLag"
Set objRS = dbCom.Execute(SQL)
Do While Not objRS.EOF
	LagID = objRS("LagID")
	Klubb = objRS("Klubb") & " " & objRS("Kontakt")

SQL2 = " SELECT BortaID, BortaIMP, BortaVP, Omgang "_
	 & " FROM tblMatcher " _
	 & " WHERE BortaID = " & LagID & " " _
	 & " ORDER BY Omgang "
Set objRS2 = dbCom.Execute(SQL2)

SQL3 = " SELECT HemmaID, HemmaIMP, HemmaVP, Omgang "_
	 & " FROM tblMatcher " _
	 & " WHERE HemmaID = " & LagID & " " _
	 & " ORDER BY Omgang "
Set objRS3 = dbCom.Execute(SQL3)
```

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

## #4 — LarsG, 2003-01-08T21:47Z

```
SQL = _
" SELECT BortaID, BortaIMP, BortaVP, Omgang, 'Borta' "_
& " FROM tblMatcher inner join lag on BortaID = LAGID "  _
& " union " _
" SELECT HemmaID, HemmaIMP, HemmaVP, Omgang, 'Hemma' "_
& " FROM tblMatcher inner join lag on Hemma = LAGID "  _
& " order by Lagid, 5, Omgang "
```

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

## #5 — CatZ, 2003-01-08T22:14Z

Vad betyder :Microsoft JET Database Engine fel '80004005'

Kopplingsuttrycket stöds inte.

Får det på  Set objRS = dbCom.Execute(SQL) är det JET som inte gillar union eller vad är det frågan om ?

```
Dim SQL, objRS
SQL = " SELECT BortaID, BortaIMP, BortaVP, Omgang, 'Borta' "_
	& " FROM tblMatcher INNER JOIN tblLag on BortaID = LagID "  _
	& " union "_
	& " SELECT HemmaID, HemmaIMP, HemmaVP, Omgang, 'Hemma' "_
	& " FROM tblMatcher INNER JOIN tblLag on HemmaID = LagID "  _
	& " ORDER BY Lagid, 5, Omgang "	
set objRS = dbCom.Execute(SQL)
```

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

## #6 — LarsG, 2003-01-08T22:39Z

Naje, JET har ju stöd för union så det borde inte vara det. Det brukar oftast vara problem i Joindelen om man får det felmeddelandet.  Är BortaID, HemmaID och LagID av samma datatyp?

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

## #7 — CatZ, 2003-01-08T22:40Z

i tblMatcher finns bara en datatyp och det är tal  LagID i tblLag är ju Räknare.... men det ska väl inte påverka ?

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

## #8 — LarsG, 2003-01-08T22:49Z

Det skall gå bra så då är det något annat.

Så här då?

```
SQL = " SELECT BortaID, BortaIMP, BortaVP, Omgang, 'Borta' "_
	& " FROM tblMatcher , tblLag " _
        & " where BortaID = LagID "  _
	& " union "_
	& " SELECT HemmaID, HemmaIMP, HemmaVP, Omgang, 'Hemma' "_
	& " FROM tblMatcher ,  tblLag " _
        & " where HemmaID = LagID "  _
	& " ORDER BY Lagid, 5, Omgang "
```

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

## #9 — Jörgen HP, 2003-01-08T22:52Z

Varför har ni apostrofer runt kolumnerna "Borta? och "Hemma"?

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

## #10 — CatZ, 2003-01-08T22:54Z

Skumt nu får jag upp:
Microsoft JET Database Engine fel '80004005'

ORDER BY-uttrycket (Lagid) innehåller fält som inte hämtas med frågan. Endast fält som hämtas med första frågan kan ingå i ORDER BY-uttrycket.

/smdm/smdm.asp, line 16

Kan det vara Lagid som är nåt vajsing med på båda varianterna?

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

## #11 — LarsG, 2003-01-08T22:55Z

JorgenHP:
Det är inte kolumnnamn, det är bara konstanta uttryck för att skilja posterna åt och kunna sortera.

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

## #12 — CatZ, 2003-01-08T22:55Z

Jörgen HP : För att det kunna skilja samma tabell åt ?

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

## #13 — LarsG, 2003-01-08T22:57Z

Ja, nu börjar det närma sig. Byt Lagid mot Bortaid i Order by.

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

## #14 — Jörgen HP, 2003-01-08T22:58Z

> **LarsG skrev:**
>
> JorgenHP:
> Det är inte kolumnnamn, det är bara konstanta uttryck för att skilja posterna åt och kunna sortera.

Aha, så långt fattar jag nu. :) Men vilka regler gäller där, och är det någon standard som fungerar i alla dbms?

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

## #15 — LarsG, 2003-01-08T23:01Z

Visst du kan ha godtyckliga uttryck i select-listan och det fungerar i alla dbms.

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

## #16 — Jörgen HP, 2003-01-08T23:04Z

Aha, bockar och bugar fär lektionen LarsG. :D

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

## #17 — CatZ, 2003-01-08T23:09Z

Fungerar fint med BortaID tack för hjälpen!! :D

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

## #18 — CatZ, 2003-01-08T23:19Z

Nej jag tog fel... nu hittar dumskräpet inte ett enda record :l

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

## #19 — LarsG, 2003-01-09T13:35Z

Jaha vad händer nu? Vad händer om du kör varje del av unionen för sig? Är det join-villkoren som inte uppfylls? Du får titta i varje tabell för sig och se om det inte stämmer med värdena mellan tabellerna-

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

## #20 — CatZ, 2003-01-09T15:55Z

Jag får fram värdena men inte på ett sätt som gör det möjligt att arbeta med dem så som jag vill.

Håller på och kikar på en annan metod nu. Jag måste nog ha  2 SQL frågor iom att om jag kör 1 annat värde tillsammans med SUM från den tabellen så kan jag aldrig bara skriva ut just "det" värdet utan de andra kommer med också.

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/64108-sql-join-s
