---
title: "subselect..."
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/21769-subselect"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "icaaq"
published: "2001-11-01T21:09:00.000Z"
updated: "2001-11-21T12:14:00.000Z"
replies: 7
views: 218
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/21769-subselect"
---

# subselect...

## #1 — icaaq, 2001-11-01T21:09Z

jag håller på att lägga in massa innebandymatcher i ett dbms(mySQL) och jag undrar nu om detta är ett bra sätt.

jag har en tabell (t_lag) med alla lag:

```
LagID!LagNamn!osv!osv
---------------------
1!AIK!osv!osv
```

och sen har jag en tabell (t_matcher) med alla matcher och dylikt.

```
MatchID!Hemmalag!Bortalag!osv
```

Är det bättre att lägga in lagID istället LagNamn i tabellen med matcherna?

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

## #2 — LarsG, 2001-11-01T21:15Z

Om du har behov av att kunna uppdatera lagNamn så skall du använda ett Lagid i Matchtabellen, annars går det på ett ut.

Om det är bra annars beror på vilken information du vill kunna plocka ut.

Vad har detta med subselect att göra?

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

## #3 — icaaq, 2001-11-01T21:30Z

> Vad har detta med subselect att göra?

Jag tänkte ställa fler frågor i det första inlägget, men då gör jag det nu istället.....

om jag kör med lagID i match tabellen då blir det ju en hel del selectsatser när jag ska visa alla matcherna i en serie....

jag har en tanke om hur det ska se ut men rätta mig om den är fel:

```
strSQL = "SELECT hemmalag, bortalag from t_matcher "&_
"WHERE serie = '"&strSerie&'"
Set ObjRS = ObjConn.Execute(strSQL)
If ObjRS.EOF Then
'inga matcher
Else
Do until ObjRS.EOF
strSQL2 = "SELECT LagNamn t_lag "&_
"WHERE LagID = "&ObjRS("hemmalag")&"
Set ObjRS2 = ObjConn.execute(strSQL2)
If ObjRS2.EOF Then
'nått blev fel
Else
'skriv ut hemmalagets info
End If
strSQL3 = "SELECT LagNamn t_lag "&_
"WHERE LagID = "&ObjRS("Bortalag")&"
Set ObjRS3 = ObjConn.execute(strSQL3)
If ObjRS3.EOF Then
'nått blev fel
Else
'skriv ut Bortalagets info
End If
ObjRS.Movenext
Loop
End If
```

är detta rätt tänkt eller går det att göra smidigare? :q

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

## #4 — LarsG, 2001-11-01T21:49Z

Det går att göra så att du får ut all information i en fråga

```
SELECT h.lagNamn as hnamn, 
       h.x as hx,
       h.y as hy,
       b.lagnamn as bnamn,
       b.x as bx,
       b.y as by 
  from t_lag as h join t_matcher 
    on h.lagid = hemmalag join
       t_lag as b on bortalag = b.lagid
 where serie = 'Serie 4711'
```

red: syntaxfel i sql.

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

## #5 — icaaq, 2001-11-01T21:52Z

Vet du att det går att göra så här i mySQL??

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

## #6 — LarsG, 2001-11-01T22:01Z

Jag är ganska säker på att det fungerar även i Mysql.

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

## #7 — icaaq, 2001-11-21T11:31Z

nu har jag denna.

```
SELECT h.F_LAG_NAMN as hnamn,
b.F_LAG_NAMN as bnamn 
from t_lag as h join t_match on h.f_lag_id = f_hemmalag 
join t_lag as b on f_bortalag = b.lagid where f_serie_namn = 'haha'
```

men jag får 

```
You have an error in your SQL syntax near 'on h.f_lag_id = f_hemmalag 
join t_lag as b on f_bortalag = b.lagid where f_serie'
```

...jag fattar ju inget av detta så vad kan vara fel?

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

## #8 — LarsG, 2001-11-21T12:14Z

Något syntax-fel är det inte (inte enligt standard sql i alla fall). 
Det beror nog mer på någon brist i Mysql. Om du testar med att kvalificera alla kolumnreferenser då

```
SELECT h.F_LAG_NAMN as hnamn,
b.F_LAG_NAMN as bnamn 
from t_lag as h join t_match as t on h.f_lag_id = t.f_hemmalag 
join t_lag as b on t.f_bortalag = b.lagid where t.f_serie_namn = 'haha'
```

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/21769-subselect
