>
>
>> -----Original Message-----
>> From: Felix Ostmann [mailto:ostmann@stripped]
>> Sent: Monday, July 14, 2003 3:32 PM
>> To: MySQL-Mailingliste dt.
>> Subject: JOIN-Problem
>>
>>
><snip>
>>
>> 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.
>>
>
>Bin mir noch nicht ganz sicher, ob ich Dich recht verstehe meinst Du das:
>
>tabelle1
>artnr bezeichnung
>1 Hund
>2 Katz
>
>
>tabelle2
>artnr bezeichnung
>1 Katz
>
>machst Du:
>SELECT tabelle1.*,tabelle2.*
>FROM tabelle 1
>LEFT JOIN tabelle2 ON tabelle1.artnr = tabelle2.artnr
>
>kriegst Du das:
>
>tabelle1.artnr tabelle1.bezeichnung tabelle2.artnr tabelle2.bezeichnung
>1 Hund 1 Katz
>2 Katz NULL NULL
>
>und Du willst stattdessen:
>
>artnr bezeichnung
>1 Katz
>2 Katz
>
>???
>Kann noch nicht verstehen unter welchen Umständen das Sinn machen kann, aber
>die einzige Möglichkeit die mir einfällt um das zu erreichen (ausser dem
>erstellen einer temporären Tabelle - darüber sollte man natürlich bei
> sowas
>nachdenken, wenn man mehr lesende als schreibende Zugriffe hat)
>
>SELECT
>IFNULL(tabelle1.artnr,tabelle2.artnr) as Artikel,
>IFNULL(tabelle1.bezeichnung,tabelle2.bezeichnung) as Bez
>FROM tabelle 1
>LEFT JOIN tabelle2 ON tabelle1.artnr = tabelle2.artnr
>
>--
>Mit freundlichen Gruessen
>Dipl.-Ing. (FH) Mike Beck
>mike.beck@stripped
>Ingenieurbüro Miller
>
>--
>Deutsche MySQL Mailingliste
>Listenarchive: http://lists.mysql.com/mysql-de
>Abbestellen (unsubscribe): http://lists.mysql.com/mysql-de?unsub=1
fast bis zum ende richtig :)
tabelle1.artnr tabelle1.bezeichnung tabelle2.artnr tabelle2.bezeichnung
1 Hund 1 Katz
2 Katz NULL NULL
so bekomme ich das, nur möchte ich, das für nicht gefundene werte kein NULL
rauskommt, sondern das die garnicht auftauchen. Weil so habe ich das Problem, das ich
folgendes rausbekomme:
artnr bezeichnung
1 Katz
NULL NULL
ich hätte aber gerne
artnr bezeichnung
1 Katz
2 Katz
weil die Werte von 2 und Katz überschrieben werden durch die zweite Tabelle. Was ich
ja genau nicht will :( Ich arbeite mit Perl & hashref, würde das Problem aber
gerne mySQL-Lastig besiegen :)