---
title: "Labels på fält vid LEFT JOIN"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/190665-labels-på-fält-vid-left-join"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "prplxr"
published: "2012-11-21T07:37:02.000Z"
updated: "2012-11-30T22:24:51.000Z"
replies: 8
views: 1012
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/190665-labels-på-fält-vid-left-join"
---

# Labels på fält vid LEFT JOIN

## #1 — prplxr, 2012-11-21T07:37Z

God morgon! Nu är jag i farten igen. Eller snarare, nu har min fart avtagit igen...

Jag sitter och gör ett uppslag mot min MySQL med en LEFT JOIN. När jag skriver ut resultatet vill jag dock inte använda numrerade index utan jag vill använda namnet på fälten i databasen, men det tycks inte gå något vidare.

Exempelvis:

```php
$sql = "SELECT * FROM tabell1 LEFT JOIN tabell2 ON tabell1.apa = tabell2.banan";
...
echo $row['apa'] . $row['tabell2.banan'];
```

Båda två ger ett felmeddelande a la "Undefined index".

Någon vänlig själ som känner sig manad att ge mig en knuff i rätt riktning?

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

## #2 — @nders, 2012-11-21T07:43Z

Du får specificera de fält du vill ha ut, och ge dem alias i frågan.

```
SELECT tabell1.ID as t1ID, tabell2.ID as t2ID... FROM ...
```

Referera sedan till aliasnamnen t1ID, t2ID, etc.

Mvh

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

## #3 — prplxr, 2012-11-21T07:55Z

Fungerar, tack! :-)

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

## #4 — @nders, 2012-11-21T08:03Z

Jag flyttar tråden en liten, liten aning.  :)

Det borde f.ö. bara vara problem med fältnamn som finns i bägge tabellerna i din join - så det är bara de fält du behöver ge alias. (Det är dock alltid en bra idé att specificera fälten man vill ha, istället för att använda SELECT \*.)

mvh

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

## #5 — prplxr, 2012-11-21T08:53Z

> **[@nders skrev:](https://www.webforum.nu/p/1556629)**
>
> Det borde f.ö. bara vara problem med fältnamn som finns i bägge tabellerna i din join

Ja, jag tyckte ju också det, men faktum är att gäller ALLA fält, oavsett om de finns i båda tabellerna. Det går inte att använda alias alls när jag gör en join.

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

## #6 — @nders, 2012-11-21T09:01Z

Konstigt. Kanske är någon MySQL-specialitet jag inte känner till - jag jobbar mest med andra DBMS.

mvh

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

## #7 — nitro2k01, 2012-11-21T09:49Z

Något annat du kan pröva är att köra print_r($row); och se vad arrayen faktiskt innehåller när du kör frågan utan alias för de fälten.

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

## #8 — aasah, 2012-11-22T20:38Z

Om det finns kolumner i de två tabellerna som heter samma sak, så kommer \* att ta ut mer än en kolumn som har samma namn (minst ett par lika-namnade kolumner). Utan att vara säker, så tror jag att det kan ställa till det i result set:et. Alltså så att result set:et inte alls fungerar, även för kolumner som har unika namn. Det kan vara förklaringen.

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

## #9 — prplxr, 2012-11-30T22:24Z

> **[aasah skrev:](https://www.webforum.nu/p/1556699)**
>
> Om det finns kolumner i de två tabellerna som heter samma sak, så kommer \* att ta ut mer än en kolumn som har samma namn (minst ett par lika-namnade kolumner). Utan att vara säker, så tror jag att det kan ställa till det i result set:et. Alltså så att result set:et inte alls fungerar, även för kolumner som har unika namn. Det kan vara förklaringen.

Det kan mycket väl vara så! När jag hämtar \* från en tabell med en eller flera JOINs annars fungerar det att använda namnen på tabellerna som alias.

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/190665-labels-på-fält-vid-left-join
