INNER JOIN über 3 unvollständige Tabellen

sandroP

Erfahrenes Mitglied
Hallo,

ich habe drei Tabellen und möchte die mit einem INNER JOIN verbinden.
Das Problem ist, dass eine Tabelle nicht vollständig ist.

Beispiel:

Tab.1
kundennummer | Inhalt1
----------------------------------
123 | blau
312 | rot

Tab.2
kundennummer | Inhalt2
----------------------------------
123 | blume
312 | tomate

Tab.3
kundennummer | Inhalt3
----------------------------------
123 | essen


Das Ergbins soll so sein:

Tab.JOIN
kundennummer | Inhalt1 | Inhalt2 | Inhalt3
----------------------------------------------------------
123 | blau | blume | essen
312 | rot | tomate |


Mit
Code:
$sqlab = "SELECT mail, typ, karteein, textlast FROM gastgeber INNER JOIN karte ON gastgeber.kundennummer = karte.kundennummer INNER JOIN lastminute ON lastminute.kundennummer = karte.kundennummer";
$sqlab .= " WHERE karte.kundennummer = '".$kundennummer."'";
$res = mysql_query($sqlab);

Bekomme ich aber nur:

Tab.JOIN
kundennummer | Inhalt1 | Inhalt2 | Inhalt3
----------------------------------------------------------
123 | blau | blume | essen



.
 
Wriklich nur INNER gegen LEFT taschen

$sqlab = "SELECT mail, typ, karteein, textlast FROM gastgeber LEFT JOIN karte ON gastgeber.kundennummer = karte.kundennummer LEFT JOIN lastminute ON lastminute.kundennummer = gastgeber.kundennummer";

$sqlab .= " WHERE karte.kundennummer = '".$kundennummer."'";
$res = mysql_query($sqlab);
 
Es geht leider noch nicht...

Aktueller Code:
Code:
$sqlab = "SELECT gastgeber.mail, gastgeber.typ, karte.karteein, lastminute.textlast FROM gastgeber 
LEFT JOIN karte ON gastgeber.kundennummer = karte.kundennummer 
LEFT JOIN lastminute ON lastminute.kundennummer = gastgeber.kundennummer";
$sqlab .= " WHERE karte.kundennummer = '".$kundennummer."'";
$res = mysql_query($sqlab);

Muss ich die WHERE Abfrage auch ändern wenn ja wie?
 
Also,

er bringt mir nur das Erbgebnis aus "Lastminute".
Die anderen Abfragen bleiben leer oder werden wieder gelöscht.

Ohne Inahlt ist somit:
$zeile[typ]
$zeile[mail]
$zeile[karteein]
 
Ich habe keine Ahnung was du meinst,
hier mal ein grösseres Stück Code. im unteren Bereich siehst du einen Teil der weiteren Verarbeitung.
PHP:
$sqlab = "SELECT gastgeber.mail, gastgeber.typ, karte.karteein, lastminute.textlast FROM gastgeber 
LEFT JOIN karte ON (gastgeber.kundennummer = karte.kundennummer) 
LEFT JOIN lastminute ON (lastminute.kundennummer = gastgeber.kundennummer)";
$sqlab .= " WHERE gastgeber.kundennummer = '".$kundennummer."'";
$res = mysql_query($sqlab);
while ($zeile = mysql_fetch_assoc($res)) 

//////////////EMail und Karte und lastminute ja

if ($zeile['mail'] != "" && $zeile['karteein'] =="ja" && $zeile['textlast'] !="")
{
echo '
 

Neue Beiträge

Zurück