---
title: "För många svar med Join"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/129918-för-många-svar-med-join"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "pettsson"
published: "2005-06-13T14:10:08.000Z"
updated: "2005-06-13T14:32:10.000Z"
replies: 8
views: 345
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/129918-för-många-svar-med-join"
---

# För många svar med Join

## #1 — pettsson, 2005-06-13T14:10Z

Försöker välja fälten HardwareRevision och HardwarePartNo från tabellen board_revision och fältet BoardSerialNo från board_test med denna fråga

```
SELECT rev.HardwareRevision, rev.HardwarePartNo, test.BoardSerialNo FROM board_revision rev LEFT JOIN board_test test ON rev.HardwarePartNo = $_GET[hwpn] AND rev.HardwareRevision = '$_GET[hwr]'
```

Detta ger \~12000 träffar, men det borde bara ge ett. Om tar jag bort joinen så funkar det, förutom att jag då inte får med det fältet i resultatet.

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

## #2 — Jesper T, 2005-06-13T14:12Z

Är det inte så en left join funkar?
Testa att ta bort "left".

Du bör väl även ha en referens mellan de olika tabellerna.

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

## #3 — @nders, 2005-06-13T14:20Z

Vad innehåller *$\_GET\[hwpn\]*?
Hur ser den färdiga SQL-frågan ut? Det hjälper oss inte att se att du har php-variabler i SQL-frågan eftersom vi inte vet vad de innehåller.

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

## #4 — pettsson, 2005-06-13T14:20Z

Det funkar inte heller utan "left". Hur menar du med en referens?
/e
@nders: Utskrift av frågan:

```
SELECT rev.HardwareRevision, rev.HardwarePartNo, test.BoardSerialNo
FROM board_revision rev
JOIN board_test test
ON rev.HardwarePartNo = 501408002
AND rev.HardwareRevision = 'B'
```

BoardSerialNo är ett heltal 99\<BoardSerial\<1000

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

## #5 — @nders, 2005-06-13T14:23Z

Du måste ju ha något som knyter ihop de två tabellerna, någon gemensam nämnare?

Typ:

```
SELECT rev.HardwareRevision, rev.HardwarePartNo, test.BoardSerialNo
FROM board_revision rev
JOIN board_test test
ON rev.fält = test.fält
WHERE rev.HardwarePartNo = 501408002
AND rev.HardwareRevision = 'B'
```

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

## #6 — pettsson, 2005-06-13T14:26Z

HardwarePartNo och HardwareRevision finns i båda tabellerna. Dock vet man inte säkert att det existerar en rad i board_test, frågan är på en "skapa ny"-sida.

/e
Kommer inte din fråga att generera ett fel om det inte finns något fält som uppfyller kravet?

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

## #7 — Jesper T, 2005-06-13T14:29Z

> Kommer inte din fråga att generera ett fel om det inte finns något fält som uppfyller kravet?

Nej

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

## #8 — @nders, 2005-06-13T14:31Z

> **pettsson skrev:**
>
> HardwarePartNo och HardwareRevision finns i båda tabellerna.

Då får du ha med dem i ditt joinvillkor.

```
SELECT rev.HardwareRevision, rev.HardwarePartNo, test.BoardSerialNo
FROM board_revision rev
LEFT JOIN board_test test
ON rev.HardwarePartNo = test.HardwarePartNo 
AND rev.HardwareRevision = test.HardwareRevision
WHERE rev.HardwarePartNo = 501408002
AND rev.HardwareRevision = 'B'
```

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

## #9 — pettsson, 2005-06-13T14:32Z

Där ser man, och det verkar funka som det ska vid första testet i alla fall :) Tackar för hjälpen, förstår hur de menar i manualen nu, blev lite förvirrad först.

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/129918-för-många-svar-med-join
