---
title: "Enkel Inner join fråga"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/97349-enkel-inner-join-fråga"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "mattiasnordin"
published: "2004-02-15T12:26:42.000Z"
updated: "2004-02-15T14:11:38.000Z"
replies: 17
views: 373
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/97349-enkel-inner-join-fråga"
---

# Enkel Inner join fråga

## #1 — mattiasnordin, 2004-02-15T12:26Z



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

## #2 — @nders, 2004-02-15T12:30Z

```
SELECT R.*, B.bild FROM T_bilregistret R LEFT JOIN T_bil_bilderna B ON R.id_nyckel = B.id_nyckel
```

Mvh

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

## #3 — mattiasnordin, 2004-02-15T12:31Z

Tack ska prova. Vad har R. & B. för funktion ???

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

## #4 — @nders, 2004-02-15T12:33Z

Det är bara alias, dvs kortnamn, istället för att skriva hela långa tabellnamnen varje gång.

Egentligen ska man väl skriva **tabellnamn AS aliasnamn**, men *as* kan man utelämna om man vill.

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

## #5 — mattiasnordin, 2004-02-15T12:37Z

```
sql = "SELECT R.*, L.default_bild, L.default_path FROM T_bilregistret R"
sql = sql & "LEFT JOIN T_bil_bilderna L ON R.id_nyckel = L.id_nyckel "
```

Ger

ADODB.Recordset.1 error '80004005' 

SQLState: 42000
Native Error Code: 1064
\[TCX\]\[MyODBC\]You have an error in your SQL syntax near 'ON R.id_nyckel = L.id_nyckel ' at line 1

Jag behöver även lägga till WHERE L.default_bild ="ja". Var lägger man till detta ?

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

## #6 — @nders, 2004-02-15T12:42Z

Till att börja med saknar du ett mellanslag mellan 'R' och 'LEFT JOIN'.

Ditt villkor borde passa i WHERE sist i SQL-frågan.

Mvh

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

## #7 — mattiasnordin, 2004-02-15T12:58Z

Vad ett mellanslag kan ställa till det :)

Frågan fungerar men nu inser jag att det inte är LEFT JOIN jag vill göra. Den verkar bara returnera raden där det finns en match i båda tabellerna.

Jag vill ha ut alla info ur T_bilregistret och OM det finns en bild i T_bil_bilderna så ska även denna tas med.

Finns det någon annan typ av join ?

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

## #8 — mattiasnordin, 2004-02-15T13:02Z

Ha ha ha ha.... Ganska roligt.... Tabellnycklarna är lite felaktiga antar jag. 

En gammal toyota har fått fel bild. Ferrarin säljs nu till toyota pris :)

<http://www.swesys.se/landrin/begagnade_bilar/begagnade_bilar_start.asp>

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

## #9 — mattiasnordin, 2004-02-15T13:09Z

... eller är det WHERE som ställer till det för mig nu?

```
sql = "SELECT L.*, R.default_bild, R.bild_path FROM T_bilregistret L "
sql = sql & " LEFT JOIN T_bil_bilderna R ON L.id_nyckel = R.id_nyckel "
sql = sql & " WHERE R.default_bild ='ja'"
```

Det är alltså en korrekt fråga ovan, men jag behöver få ut alla resultat från vänster och en rad ur höger om den existerar. På höger sida är det två kriterier som måste vara uppfyllda.

??

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

## #10 — @nders, 2004-02-15T13:25Z

Då får du använda LEFT OUTER JOIN.

Mvh

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

## #11 — mattiasnordin, 2004-02-15T13:29Z

sql = "SELECT L.\*, R.default_bild, R.bild_path FROM T_bilregistret L "
sql = sql & " LEFT OUTER JOIN T_bil_bilderna R ON L.id_nyckel = R.id_nyckel "
sql = sql & " WHERE R.default_bild ='ja'"

Returnerar fortfarande bara en träff. Men visst är det WHERE frågan som styr detta i mitt fall?

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

## #12 — @nders, 2004-02-15T13:33Z

Jag förstår inte riktigt.

Men prova att rycka bort WHERE-satsen, och se vad som händer.

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

## #13 — mattiasnordin, 2004-02-15T13:42Z

T_bilregistret (L i frågan)  ser ut så här:

id \| id_nyckel \| tillverkare \| bilmarke \| etc...

T_bil_bilder (R i frågan)  ser ut så här:

id \| id_nyckel \| bild_path \| default_bild \| etc...

I denna lagras alla sökvägar till bilderna till en viss bil. De kan alltså finnas ca fyra bilar med samma id_nyckel i denna men det är bara en bild som har egenskapen default_bild (default_bild=ja).

Därför kan jag väl inte göra en vanlig join, denna returnerar väl bara en rad från tabellen med bilbilderna och det är inte säkert att det råkar vara den som har default bild = ja.

Kanske en dum databasdesign men nu blidde det såhär :(

Restultatet av att tabort WHERE = <http://www.swesys.se/landrin/begagnade_bilar/begagnade_bilar_start.asp>

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

## #14 — @nders, 2004-02-15T13:46Z

Det är nog ingen dum design. :)

Men; vad innehåller fälten id_nyckel i de två tabellerna? Borde inte villkoret vara **L.id = R.id_nyckel**?

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

## #15 — mattiasnordin, 2004-02-15T13:52Z

I och med att det ska gå att skicka http länkar till denna sida med tex e-mail så ville jag att id fältet skulle vara slumpat så att det inte går att "fuska" genom att lägga på ett på befintligt id i url:en. 
Så jag har slumpat fram id_nyckeln. Den är altså samma i båda tabellerna och ser ut så här: 7sTaAV 

Tack för att du kämpar med mig denna ljuva söndag morgon (för mig. Barrunda igår)... ;)

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

## #16 — mattiasnordin, 2004-02-15T13:57Z

BINGO...
Denna kod verkar fungera:

```
sql = "SELECT L.*, R.default_bild, R.bild_path FROM T_bilregistret L "
sql = sql & " LEFT OUTER JOIN T_bil_bilderna R ON (L.id_nyckel = R.id_nyckel AND R.default_bild ='ja') "
```

Hade det varit min ferarri så hade du fått den. Lovar!

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

## #17 — @nders, 2004-02-15T13:58Z

Att lägga villkoret där hade varit min nästa gissning. :)

Kul att det löste sig.

> Hade det varit min ferarri så hade du fått den. Lovar!

Menar du inte Toyotan? ;)

mvh

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

## #18 — mattiasnordin, 2004-02-15T14:11Z

Dom har faktiskt en ferrari i bilhallen. Hoppas att jag får provköra den nu när jag är så snäll och hjälper dem med siten ;)

Mera bilder på den här: <http://www.bytbil.com/carinfo.cgi?id=B80AE27AB8B8EC&look=landrinavesta>

Fel färg men annars en fantastisk bil... 

TACK! Case closed.

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/97349-enkel-inner-join-fråga
