 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
20.03.2005, 19:34
|
#1
|
|
TP-Senior
Registriert seit: May 2002
Ort: Saarbrücken
|
LEFT JOIN über drei Tabellen
Hallo,
ich versuche gerade die folgende Abfrage hinzubekommen:
PHP-Code:
$query_neuheiten = "select * from $neuigkeiten n, $produkte p, $produktbilder pb
LEFT JOIN p ON p.IDproduct = n.IDproduct
LEFT JOIN pb ON n.IDproduct = pb.IDproduct
WHERE n.IDproduct = p.IDproduct
ORDER BY n.IDneuheit DESC LIMIT 0,12";
$result_neuheiten = mysql_query($query_neuheiten);
Ich möchte nun in der folgenden WHILE-Schleife alle Werte ausgeben, was soweit auch funktioniert ... allerdings kommt es manchmal vor dass die entsprechende IDprodukt in der Tabelle $produktbilder nicht vorkommt, und genau bei diesen Datensätzen fehlt mir dann die IDproduct
Kann mir da bitte jemand auf die Sprünge helfen wie ich dies hinbekommen könnte? ..
Gruß Frank
|
|
|
20.03.2005, 19:39
|
#2
|
|
TP-Veteran
Registriert seit: Jun 2004
Ort: Stuttgart
|
probier es mal mit einem "left outer join" vielleicht hilft das?
|
|
|
20.03.2005, 20:03
|
#3
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
das entspricht aber nicht dem, was er ausgeben will.
Bei den joins müssen die Verknüpfungsfelder schon drin sein, sonst wird der Datensatz auch nicht erfasst.
Abhilfe schaffst Du nur, indem von jeder IDproduct auch in den gejointen Tabellen ein Datensatz vorhanden ist, ansonsten musst Du die sql splitten.
|
|
|
20.03.2005, 20:16
|
#4
|
|
TP-Veteran
Registriert seit: Jun 2004
Ort: Stuttgart
|
Um den Join etwas übersichtlicher zu gestalten:
Code:
SELECT * from $neuigkeiten n
JOIN $produkte p ON p.IDproduct = n.IDproduct
JOIN $produktbilder pb ON pb.IDproduct = n.IDproduct
ORDER BY n.IDneuheit
DESC LIMIT 0,12
Aber das stimmt natürlich Steffen, wenn in der Tabelle IDproduct fehlt, dann findet selbst das beste DBMS nix. 
|
|
|
21.03.2005, 11:27
|
#5
|
|
TP-Senior
Registriert seit: May 2002
Ort: Saarbrücken
|
Juhu Jungs,
alles klar und danke ... so funkts
PHP-Code:
$query_angebote = "SELECT p.Name, p.IDproduct, p.IDgruppe, p.IDuntergruppe, pb.grafik1 from $angebote a
JOIN $produkte p ON a.IDproduct = p.IDproduct
LEFT JOIN $produktbilder pb ON a.IDproduct = pb.IDproduct
ORDER BY a.IDangebot DESC LIMIT 0,5";
Gruß Frank
|
|
|
22.03.2005, 12:42
|
#6
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
Gratuliere !
|
|
|
22.03.2005, 17:17
|
#7
|
|
TP-Veteran
Registriert seit: Jun 2004
Ort: Stuttgart
|
ähh, mal kurz zum mitmeiseln für mich: wo genau war der fehler? 
|
|
|
22.03.2005, 17:27
|
#8
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
vorher waren beide Tabellen mit LEFT JOIN eingebunden,
und nu 1.Tabelle JOIN 2. Tabelle LEFT JOIN 
|
|
|
22.03.2005, 17:28
|
#9
|
|
TP-Veteran
Registriert seit: Jun 2004
Ort: Stuttgart
|
ahh, ja ok... o_O
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 21:16 Uhr.
|
 |