---
title: "Hämta från två tabeller?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/115191-hämta-från-två-tabeller"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "streetrobban"
published: "2004-11-05T17:20:48.000Z"
updated: "2004-11-07T18:43:10.000Z"
replies: 10
views: 319
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/115191-hämta-från-två-tabeller"
---

# Hämta från två tabeller?

## #1 — streetrobban, 2004-11-05T17:20Z

Tja, jag har sökt i forumet men endå inte fått till det.

Jag skriver ut artister på min sida, och vill under loopen hämta information från en annan tabell i databasen. Hur gör man detta, prövade något sånt här men det funkade inte:

```php
SELECT samples.artist, samples.låtnamn FROM samples INNER JOIN artist.namn WHERE artist.namn = 'samples.artist' ORDER BY id
```

Jag har inte använd JOIN förut, så jag vet inte hur det funkar, kan någon snäll själ förklara? :)

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

## #2 — Peeer, 2004-11-05T17:22Z

```
select samples.artist, samples.låtnamn, artist.namn from samples, artist
where artist.namn = samples.artist order by id
```

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

## #3 — streetrobban, 2004-11-05T17:27Z

Jag har ju två tabeller:

SAMPLES där 'artist' och 'låtnamn' ska hämtas, och sedan ska man hämta 'namn' från tabellen ARTISTER WHERE samples.artist = 'artister.namn'.

Hur gör jag det? :)

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

## #4 — @nders, 2004-11-05T17:32Z

Två spontana frågor då:

1) Funker inte Peeers exempel?
2) Funkar inte SQL-forumet? ;)

Mvh :)

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

## #5 — Peeer, 2004-11-05T17:33Z

Que? Fungerade inte koden ovan? Den plockar ut artist och låtnamn från samples och ifrån tabellen artist så plockas namn ut. Dock bara på de ställen där värdet i artist.namn överrensstämmer med samples.artist.

Var det inte så du skulle ha det?

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

## #6 — streetrobban, 2004-11-05T18:31Z

Ok, ok...

Det funkar inte riktigt som jag vill. Ungefär så här ser koden ut.

```php
<?php
// Öppna databasen
require 'inc/db.php';

$sql = "SELECT * FROM artister ORDER BY id";
$resultat = @mysql_query($sql) or die ("Kunde inte hämta dina uppgifter.");
$varannan = "2";

while ($rad = mysql_fetch_array($resultat)) 
{
	if ($varannan == "1") 
	{
		echo "$rad[namn]";
		
		$sql = "SELECT samples.artist, samples.låtnamn, artister.namn FROM samples, artister WHERE artister.namn = samples.artist ORDER BY id";
		$resultat = @mysql_query($sql) or die ("Kunde inte hämta dina uppgifter.");
		while ($rad = mysql_fetch_array($resultat)) 
		{
			echo "".$rad['låtnamn']."<br>";
		}
		
		$varannan = "2";
	}
	else 
	{
		echo "$rad[namn]";
		
		$sql = "SELECT samples.artist, samples.låtnamn, artister.namn FROM samples, artister WHERE artister.namn = samples.artist ORDER BY id";
		$resultat = @mysql_query($sql) or die ("Kunde inte hämta dina uppgifter.");
		while ($rad = mysql_fetch_array($resultat)) 
		{
			echo "".$rad['låtnamn']."<br>";
		}
		
		$varannan = "1";
	}
}

// Stäng databasen
mysql_close($open);
?>
```

Det är bara de två första posterna som skrivs ut, utan artisternas låtar som ska hämtas från den andra tabellen.

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

## #7 — Niklasson, 2004-11-05T22:41Z

Tråden flyttas från PHP..

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

## #8 — LarsG, 2004-11-06T15:41Z

Hur är tabellerna definierade? Ge lite exempel på data.

Det verkar befängt att joina artist.namn med sample.artist och sedan hämta båda kolumnerna.

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

## #9 — streetrobban, 2004-11-07T02:03Z

På min sida listar jag diverse artister, och korta låtsnuttar på musik de gjort. 

I ena tabellen 'ARTISTER' (artister.namn), finns det info om artisterna, och i den andra tabellen 'SAMPLES' (samples.artist, samples.låtnamn) så sparas artist-namn och genvägar till deras låtsnuttar.

Jag vill alltså; 
1) Hämta information om artisterna från tabellen 'ARTISTER' och skriva ut det på sidan.
2) Leta i tabellen 'SAMPLES' (består av genvägar till mp3-filer) efter artistens namn (artister.namn = samples.artist) och skriva ut det på sidan (samples.låtnamn).

**artister**
id
namn
url
bild
beskrivning
tid
datum

**samples**
id
artist
låtnamn

**LarsG** \- Jag vill hämta data från tabellen 'SAMPLES' där samples.artist är samma som artister.namn. Så att man får rätt låtar på rätt artist :)

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

## #10 — UlfT, 2004-11-07T02:46Z

Vad händer om du har råkat stava artistens namn fel i tabellen "samples"? Egentligen borde du koppla ihop tabellerna genom att använda en "foreign key" till tabellen "artist"s primärnyckel. Om nu samples.artist hade innehållit en referens till artist.id, istället för artistens namn, hade du kunnat använda följande fråga:

```
select samples.låtnamn, artist.namn from samples, artist
where artist.id = samples.artist
```

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

## #11 — streetrobban, 2004-11-07T18:43Z

Det går inte att stava fel, det blir alltid samma namn. Men jag ska testa med den där SQL-satsen och se om det funkar.

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/115191-hämta-från-två-tabeller
