Problem mit JOIN

Problem mit JOIN

am 05.11.2004 09:18:58 von Mike Schneider

Hallo NG,

warum liefert folgender SELECT auf meinem Testsystem (MySQL 3.23.49) die
gewünschten Datensätze, auf dem Liveserver (MySQL 3.23.52) aber nicht?

$sql = "SELECT entsorgungsart
FROM entsorgungsart as E
JOIN touren as T ON T.entsorgungsart_id = E.id
WHERE T.id = $tourid";


Mit
$sql = "SELECT entsorgungsart.entsorgungsart
FROM entsorgungsart, touren
WHERE touren.entsorgungsart_id = entsorgungsart.id
AND touren.id = $tourid";

geht's auf beiden Systemen. Mich würde aber schon interessieren, wieso
es bei der ersten Anweisung nicht hinhaut. Vielleicht kann mich jemand
schlau machen.

Danke.

--
Mike Schneider
fixluja[at]donaumarkt[dot]com

Re: Problem mit JOIN

am 05.11.2004 10:17:58 von Lehnhard Luetzen

Mike Schneider schrieb:

> warum liefert folgender SELECT auf meinem Testsystem (MySQL 3.23.49) die
> gewünschten Datensätze, auf dem Liveserver (MySQL 3.23.52) aber nicht?

Nicht so leicht zu beantworten... Keine Ahnung warum Dir Dein Testsystem
darauf eine Antwort gibt
>
> $sql = "SELECT entsorgungsart
> FROM entsorgungsart as E
> JOIN touren as T ON T.entsorgungsart_id = E.id
> WHERE T.id = $tourid";

Schreibe doch bitte einfach
$sql = "SELECT entsorgungsart
FROM entsorgungsart E
INNER JOIN touren T ON T.entsorgungsart_id = E.id
WHERE T.id = $tourid";


Also AS kann verwendet werden um Attribute einer Relation unter etwas
anderem als ihren Attributnamen zurückzubekommen. Um die Relationsnamen
in einer Abfrage zu verkürzen wird einfach das Kürzel hinter den
Relationsnamen geschrieben.
Wenn Du Einen Join machen willst mußt Du auch angeben um was für einen
Join es sich handelt. Siehe in Deiner Dokumentation unter [INNER | LEFT
| RIGHT] JOIN nach

Lehnhard Lützen

Re: Problem mit JOIN

am 05.11.2004 10:53:33 von Mike Schneider

Lehnhard Luetzen schrieb:

> Schreibe doch bitte einfach
> $sql = "SELECT entsorgungsart
> FROM entsorgungsart E
> INNER JOIN touren T ON T.entsorgungsart_id = E.id
> WHERE T.id = $tourid";
>
Das klappt auf beiden Servern. Prima! Vielen Dank!


> Also AS kann verwendet werden um Attribute einer Relation unter etwas
> anderem als ihren Attributnamen zurückzubekommen. Um die Relationsnamen
> in einer Abfrage zu verkürzen wird einfach das Kürzel hinter den
> Relationsnamen geschrieben.
> Wenn Du Einen Join machen willst mußt Du auch angeben um was für einen
> Join es sich handelt. Siehe in Deiner Dokumentation unter [INNER | LEFT
> | RIGHT] JOIN nach

Vielen Dank für die Hilfe. Werd mich nochmal mit dem Thema
auseinandersetzen müssen ;-)


--
Mike Schneider
fixluja[at]donaumarkt[dot]com