5 messages in com.mysql.lists.mysql-deRE: JOIN-Problem
FromSent OnAttachments
Felix Ostmann14 Jul 2003 06:31 
Dennis Sterzenbach14 Jul 2003 06:55 
Beck, Mike14 Jul 2003 07:09 
Felix Ostmann14 Jul 2003 07:18 
Georg Richter14 Jul 2003 10:37 
Subject:RE: JOIN-Problem
From:Dennis Sterzenbach (den@darknoise.de)
Date:07/14/2003 06:55:24 AM
List:com.mysql.lists.mysql-de

Hi,

ich würde es mal mit INNER JOIN probieren. Der liefert nur die Datensätze, wo in
beiden Tabellen Übereinstimmungen auftauchen.

MfG Dennis

-----Original Message----- From: Felix Ostmann [mailto:ostm@os3.com] Sent: Montag, 14. Juli 2003 15:32 To: MySQL-Mailingliste dt. Subject: JOIN-Problem

"Wenn es für die rechte Tabelle keinen übereinstimmenden Datensatz im ON- oder
USING-Teil eines LEFT JOIN gibt, wird für die rechte Tabelle eine Zeile benutzt,
in der alle Spalten auf NULL gesetzt sind. Das können Sie benutzen, um
Datensätze in einer Tabelle herauszusuchen, die in einer anderen Tabelle kein
Gegenstück haben: "

eigentlich ne dolle Sache, nur habe ich, bzw. nen Arbeitskolege das Problem, das
wenn kein übereinstimmender Datensatz gefunden wird und wir die Daten per
hashref abrufen logischerweise dann die USING-bedingungen als NULL
zurückbekommen, da die Werte die als letztes eingelesen werden ja NULL sind.

Sprich wir haben zwei Tabellen die über USING(artikelnr) verbunden sind und es
gibt keinen passenden Eintrag in der zweiten Tabelle, dann wird im Ergebnis
artikelnr als NULL zurückgegeben. Es gibt zwar verschiedene Varianten das zu
unterbinden indem man explizit die Feldnamen angibt der zweiten Tabelle oder mit
einem array arbeitet, aber wir suchen halt irgendwie nach der Möglichkeit weiter
mit hashref arbeiten zu können ohne explizit alle Tabellenfelder angeben zu
müssen (wenn es 300 sind z.b. dürfe es nicht wirklich effektiv sein wenn man
alle haben will). Also wir suchen sowas wie: fülle mir die erste Tabelle mit den
Daten aus der zweiten Tabelle auf sofern Daten aus der zweiten Tabelle vorhanden
sind.