List:German« Previous MessageNext Message »
From:Mike Beck Date:July 14 2003 2:09pm
Subject:RE: JOIN-Problem
View as plain text  

> -----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
Thread
JOIN-ProblemFelix Ostmann14 Jul
  • RE: JOIN-ProblemDennis Sterzenbach14 Jul
RE: JOIN-ProblemMike Beck14 Jul
RE: JOIN-ProblemFelix Ostmann14 Jul
  • Re: JOIN-ProblemGeorg Richter14 Jul