---
title: "mysql join ?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/161229-mysql-join"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Fuel"
published: "2007-06-08T01:46:07.000Z"
updated: "2007-06-08T12:45:46.000Z"
replies: 11
views: 580
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/161229-mysql-join"
---

# mysql join ?

## #1 — Fuel, 2007-06-08T01:46Z

Hej, har både dammat av mig själv och mysql joins, skulle behöva en del hjälp med en kodsnutt samt lite länkar till info.

Ex. har 3 tabeller. 1. rek 2. kat & 3. anv

I tabell 1(rek) sparas det mesta. Där plockar jag ut en rubrik, ett datum, ett kategori id & 2st användar id´n ( ett id skrev in datan & det andra id´t ändrade sedan )

så hur gör jag ?

```php
SELECT
            rek.rubrik, rek.id, rek.skrev, rek.andrade, rek.kat, rek.datum,
            anv.id, anv.namn,
            kat.id, kat.name, kat.bild
            FROM
            rek
            LEFT JOIN
            anv
            ON
            rek.skrev = anv.id
            LEFT JOIN
            anv
            rek.andrade = anv.id
            LEFT JOIN
            kat
            ON
            rek.kat = kat.id
            ORDER BY rek.datum DESC
```

Det är det mesta som ska ut ur rek, kategori?  id får man ju på anv. blir knivigare när jag vill ha namn på både han som skrev & han som ändrade på samma rad.

Alltså... typ...

ID \| Kategori Namn \| Rubrik \| Datum \| Han som skrev + hans id \| Hans om ändrade  + hans id
ID \| Kategori Namn \| Rubrik \| Datum \| Han som skrev + hans id \| Hans om ändrade  + hans id
ID \| Kategori Namn \| Rubrik \| Datum \| Han som skrev + hans id \| Hans om ändrade  + hans id
ID \| Kategori Namn \| Rubrik..... osv osv

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

## #2 — Pedda, 2007-06-08T06:00Z

Flyttas från PHP

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

## #3 — The_Hulk, 2007-06-08T06:35Z

du måste sätta ett alias på anv-tabellen om du använder den mer än en gång

```
 SELECT
            rek.rubrik, rek.id, rek.skrev, rek.andrade, rek.kat, rek.datum,
            a1.id, a1.namn,
            a2.id, a2.namn,
            kat.id, kat.name, kat.bild
            FROM
            rek
            LEFT JOIN
            anv AS a1
            ON
            rek.skrev = a1.id
            LEFT JOIN
            anv AS a2
            rek.andrade = a2.id
            LEFT JOIN
            kat
            ON
            rek.kat = kat.id
            ORDER BY rek.datum DESC
```

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

## #4 — Fuel, 2007-06-08T08:32Z

Hmm.. vad gör jag för fel ?

*Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'requests.by = users2.id LEFT JOIN categories ' at line 14*

```php
$req_sql = "SELECT
            requests.headline, requests.id, requests.userid, requests.by, requests.text, requests.added, requests.cat, requests.hits, 
            users1.id, users1.username AS USR_NAME1, 
            users2.id, users2.username AS USR_NAME2, 
            categories.id AS CAT_ID, categories.name AS CAT_NAME, categories.image AS CAT_IMAGE 
            FROM 
            requests 
            LEFT JOIN 
            users AS users1 
            ON 
            requests.userid = users1.id 
            LEFT JOIN 
            users AS users2 
            requests.by = users2.id 
            LEFT JOIN 
            categories 
            ON 
            requests.cat = categories.id 
            ORDER BY requests.added DESC";

$get_req = mysql_query($req_sql) or die("Error: ".mysql_error()."");
```

Är det för att requests.by kan var tomt i vissa fall ?

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

## #5 — @nders, 2007-06-08T08:35Z

> Är det för att requests.by kan var tomt i vissa fall ?

Nej, det har ju inte med syntaxen att göra. Däremot hittar jag inte stället i koden som felmeddelandet pekar på? *requests.filledby = users2.id*  finns ju inte med i din SQL-fråga???

edit: jaha, där kom en redigering.

**by** är rätt fett reserverat. Byt namn.

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

## #6 — Fuel, 2007-06-08T08:41Z

:( still no go.. samma fel fortfarande, är jag rätt ute i syntaxen ändå ?

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

## #7 — @nders, 2007-06-08T08:47Z

Samma felmeddelande, trots att du bytt namn på fältet?

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

## #8 — Fuel, 2007-06-08T08:52Z

Yes...

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

## #9 — @nders, 2007-06-08T08:53Z

Ok, exakt hur ser felmeddelandet ut nu, och exakt hur ser SQL-frågan ut nu?

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

## #10 — Fuel, 2007-06-08T08:59Z

Så här...

*Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'requests.filledby = users2.id LEFT JOIN categories ' at line 14*

```php
$req_sql = "SELECT
            requests.headline, requests.id, requests.userid, requests.fillerid, requests.description, requests.added, requests.cat, requests.hits, 
            users1.id, users1.username AS USR_NAME1, 
            users2.id, users2.username AS USR_NAME2, 
            categories.id AS CAT_ID, categories.name AS CAT_NAME, categories.image AS CAT_IMAGE 
            FROM 
            requests 
            LEFT JOIN 
            users AS users1 
            ON 
            requests.userid = users1.id 
            LEFT JOIN 
            users AS users2 
            requests.fillerid = users2.id 
            LEFT JOIN 
            categories 
            ON 
            requests.cat = categories.id 
            ORDER BY requests.added DESC";

$get_req = mysql_query($req_sql) or die("<div class='mysql-error'>Error: ".mysql_error()."</div>");
```

```php
CREATE TABLE `requests` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `userid` int(10) unsigned NOT NULL default '0',
  `headline` varchar(225) default NULL,
  `description` text NOT NULL,
  `added` datetime NOT NULL default '0000-00-00 00:00:00',
  `hits` int(10) unsigned NOT NULL default '0',
  `cat` int(10) unsigned NOT NULL default '0',
  `fillerid` int(10) unsigned NOT NULL,
  PRIMARY KEY  (`id`),
  KEY `userid` (`userid`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

CREATE TABLE `users` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `username` varchar(40) NOT NULL default '',
  PRIMARY KEY  (`id`),
  UNIQUE KEY `username` (`username`),
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

CREATE TABLE `categories` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `name` varchar(30) NOT NULL default '',
  `image` varchar(255) NOT NULL default '',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
```

```php
while ($req = mysql_fetch_array($get_req))
{

    echo "<p>".$req['CAT_NAME']."</p>";
    echo "<p>".$req['headline']."</p>\n";
    echo "<p>".$req['USR_NAME1']."</p>\n";
    echo "<p>".$req['USR_NAME2']."</p>\n";
    echo "<hr />";

}
```

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

## #11 — @nders, 2007-06-08T09:50Z

```
            users AS users2 
            [b]ON[/b]
            requests.fillerid = users2.id
```

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

## #12 — Fuel, 2007-06-08T12:45Z

bra.. :) tack! 

blev " requests.id AS REQ_ID " också för att få rätt id

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/161229-mysql-join
