---
title: "Hämta allt utan rabatt också..."
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/156060-hämta-allt-utan-rabatt-också"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "streetrobban"
published: "2007-01-17T14:09:10.000Z"
updated: "2007-01-17T14:55:45.000Z"
replies: 5
views: 293
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/156060-hämta-allt-utan-rabatt-också"
---

# Hämta allt utan rabatt också...

## #1 — streetrobban, 2007-01-17T14:09Z

Hej, jag sitter och pillar lite med en webshop för skojs skull. Men jag har stött på ett litet problem. Det finns tre tabeller, shop_products, shop_categories och shop_discount. Det är väl ganska självklart vad tabellerna innehåller. Grejjen är att jag vill skriva ut alla produkter i en lång lista, och visa rabatten bredvid de produkter som har rabatt. Den nedanstående koden skriver bara ut alla produkter med rabatt, inga andra. Så, hur ska jag göra för att skriva ut samtliga produkter, oavsett rabatt eller inte?

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

	// Hämta produkter
	$get = mysql_query("SELECT pr.*, ca.name_category, di.discount FROM shop_categories ca
	JOIN shop_products AS pr ON pr.id_category = ca.id
	JOIN shop_discount AS di ON di.id_product = pr.id");
	while($row = mysql_fetch_array($get))
	{
		$id = $row['id'];
		$name = $row['name'];
		$description = $row['description'];
		$price = $row['price'];
		$time = $row['time'];
		$date = $row['date'];
		$id_category = $row['id_category'];
		$name_category = $row['name_category'];
		$discount = $row['discount'];
		$newPrice = $price-$discount;
		
		echo "$name_category / <b>$name ($id)</b> ($discount)<br/>";
		echo "$description ($price/$newPrice kr)<br/><br/>";
	}
	
	// Stäng databasen
	mysql_close($open);
	?>
```

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

## #2 — Peter S, 2007-01-17T14:21Z

```php
$get = mysql_query("SELECT pr.*, ca.name_category, di.discount FROM shop_categories ca 
    JOIN shop_products AS pr ON pr.id_category = ca.id 
    LEFT JOIN shop_discount AS di ON di.id_product = pr.id");
```

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

## #3 — streetrobban, 2007-01-17T14:36Z

Jasså, det gick fort. Tack för svaret. Vad är det för skillnad på JOIN och LEFT JOIN då? Jag har hört att det inte är någon skillnad på INNER JOIN och JOIN iaf.

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

## #4 — Peter S, 2007-01-17T14:41Z

Med LEFT/RIGHT JOIN får du även ut de poster från den VÄNSTRA/HÖGRA tabellen i joinen, som inte kan matchas mot den andra tabellen. En INNER JOIN hämtar alltså bara de rader för vilka det finns en match för joinvillkoret.

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

## #5 — streetrobban, 2007-01-17T14:46Z

Ok, det sägs att man lär sig något nytt varje dag. Idag var inget undantag :)

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

## #6 — Niklasson, 2007-01-17T14:55Z

Flyttas från PHP..

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/156060-hämta-allt-utan-rabatt-också
