PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   SQL / Datenbanken (https://www.php-resource.de/forum/sql-datenbanken/)
-   -   JOIN Problem (https://www.php-resource.de/forum/sql-datenbanken/86388-join-problem.html)

Flip7 23-08-2007 10:11

JOIN Problem
 
hallo,

ich habe folgendes Problem:

meine 4 Tabellen sollen verknüpft werden!
wobei mindestens alle Einträge der ersten Tabelle erscheinen sollen!

Die zweite Tabelle wird mit der ersten also durch einen LEFT JOIN verknüpft!

Jetzt sollen allerdings nur Einträge angezeigt werden, wo die zweite und dritte Tabelle ein gleiches Feld haben (INNER JOIN)!
Die vierte Tabelle ist jetzt egal!

Wie mach ich das jetzt mindestens alle Einträge der ersten Tabelle und dazu nur (wenn vorhanden) die Einträge von der zweiten und dritten Tabelle. Wenn keine gleichen Einträge vorhanden sind trotzdem den Eintrag aus Tabelle 1 ausgeben!

Mein praktisches Problem:

Ich hab eine Liste, wo mehrere Häfen vorhanden sind, wo ein Hafen mehrere Preise von Containern hat! z.B

Hafen 1: 20 ft Container = 2000 EUR
Hafen 1: 40 ft Container = 3800 EUR
...etc...

und ich will auch wenn der Hafen keine Container anbietet, dass der Hafen hingeschrieben wird!

Vielen Dank

gruß Flip

Benny-one 23-08-2007 11:17

1. Was hat du bisher selbst hinbekommen?
2. Wie ist die Struktur aller 4 Tabellen (posten).

martinm79 23-08-2007 11:37

(wenn vorhanden)? Ist das nicht left join?

Flip7 24-08-2007 09:21

Hallo, es tut mir leid, ich hab es selber gelöst!

Hier der SQL-Code:
PHP-Code:

SELECT fm_speditionskosten.speditionskosten_idfm_speditionskosten.speditionskosten_betragfm_spedition.spedition_namefm_spedition.spedition_id,
fm_hafen.hafen_namefm_hafen.hafen_idfm_container.container_namefm_container.container_volumenfm_container.container_id FROM fm_hafen
LEFT JOIN 
(fm_speditionskosten INNER JOIN fm_spedition ON 
fm_spedition
.spedition_id fm_speditionskosten.speditionskosten_spedition INNER JOIN fm_container 
ON fm_container
.container_id fm_speditionskosten.speditionskosten_containerON fm_speditionskosten.speditionskosten_hafen fm_hafen.hafen_id 

Erst die INNER JOINs und dann verbinden dem LEFT JOIN, so hab ich von der Tabelle fm_hafen alle Einträge und bei den Verknüpften Tabellen nur die mit INNER JOIN verbundenen Einträge!

Vielen Dank trotzdem

ghostgambler 24-08-2007 11:34

(Da blickt doch keiner mehr durch... nutz doch kürzere table aliases?! Oo)

TobiaZ 24-08-2007 12:56

und umrüche...


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:23 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG