# was bedeutet LEFT OUTER JOIN?



## deinertsche (27. August 2002)

Kann mir jemand erklären was es mit LEFT OUTER JOIN in den Mysql-Abfragen auf sich hat?!?! Was bedeutet das? Was kann man damit machen?Hab hier nen Quelltext wo das ständig drin vorkommt. :-(


----------



## Scope (27. August 2002)

http://www2.little-idiot.de/mysql/mysql-118.html

Ist sehr hilfreich, auch wenn ich es daraus auch noch nicht 100%ig entnehmen konnte.
Wäre daher auch dankbar für eine Erklärung mit eigenen Worten.


----------



## Valentin- (27. August 2002)

hm also mit Left Outer Join erspart man sich viele Abfragen,
man vereint zwei tabellen abfragen in einer mysql_query, das heisst
du setzt den bestimmten (von dir) buchstaben vor die tabelle
zum beispiel so N.newsid und die andere tabelle comments z.b.
C.commentid und dann kannst du LEFT OUTER JOIN C comment ON 
definieren bei welchen übereinstimmenden Feldern daten aus _beiden_
Tabellen geholt werden sollen...


----------



## Dunsti (27. August 2002)

HIER eine Seite, wo das recht einfach aber genau beschrieben ist (für jemanden, der der englischen Sprache mächtig ist)


Dunsti


----------



## deinertsche (27. August 2002)

Hab mir beide urls durchgelesen aber stehe scheinbar immernoch auf dem schlauch.
Kann mir jemand folgendes ins deutsche übersetzen:

$sql = "SELECT 
		cl.clientID as clientID, 
		u.display_name as clientname
		FROM 
			clients cl
		LEFT OUTER JOIN
			user u
		ON cl.id = u.id
			ORDER BY 
		u.display_name";


Es kommt übrigens immer folgende Fehlermeldung:
MySQL-Error:: 
You have an error in your SQL syntax near '' at line 1


----------



## Scope (27. August 2002)

```
$sql = "SELECT 
cl.clientID as clientID, 
u.display_name as clientname 
FROM 
clients cl 
LEFT OUTER JOIN 
user as u 
ON cl.id = u.id 
ORDER BY 
u.display_name";
```

^^ist ein schuss ins blaue, aber vielleicht ist´s ja richtig.


----------



## melmager (27. August 2002)

$sql = "SELECT 
cl.clientID as clientID, 
*(tabelle cl feld clientId ) = neuer name clientid
u.display_name as clientname
*(tabelle u feld display_name) = neuer name clientname 
FROM 
clients cl 
* und hier ist ein fehler 
* es fehlt ein as = clients as cl
* neuer name cl 
LEFT OUTER JOIN 
* verknüpfe mit
user u 
* auch hier fehlt ein as
* = user as u 
ON cl.id = u.id 
*welche felder verknüpfen die beiden tabellen
ORDER BY 
u.display_name"; 

* sotiere die ausgabe ...

..so jetzt ham wir es


----------

