Hallo zusammen,
Habe ein Problem mit dem zusammenführen von Werten mehrerer Tabellen.
Also beschreibe ich mal kurz meine herangehensweise (detailliert unten im query zum selbstnachlesen):
1) mache einen query auf einige Tabelle und verknüpfe diese über id's mit anderen tabelle.
=> das Ergebnis was ich zurückbekomme ist schon ganz gut.
2) verknüpfe das Ergebnis mit einer weiteren Tabelle(server_votes)
=> ich bekomme am Ende nur ein Ergebnis über die Einträge die in allen Tabelle vorhanden sind.
Wunsch:
ich würde aber gern ein Ergebnis bekommen mit
allen Einträgen aus dem Schritt 1 Ergebnis und solchen aus Schritt 2.. für die es in der "server_votes" Tabelle keinen "verknüpfungspartner" gibt würde ich gerne als wert "0" zurückliefern.
Das Ganze nochmal als "Bild" statt worten:
Ergebnis nach Schritt1:
name: server 1 | id: 257
name: server 2 | id: 258
name: server 3 | id: 259
Ergebnis nach Verknüpfung mit "server_votes":
name: server 2 | id: 258 | votes: 325
ich will aber:
name: server 1 | id: 257 | votes: 0
name: server 2 | id: 258 | votes: 325
name: server 3 | id: 259 | votes: 0
zum Aufbau der "server_votes" Tabelle:
nur 2 spalten, einmal die ID mit der ich verknüpfe und dann den Wert an den ich ran will (welcher 0 sein soll wenn es keine Verknüpfung gibt).
PHP-Code:
SELECT DISTINCT
ezcontentobject.*,
ezcontentobject_tree.*,
ezcontentclass.serialized_name_list as class_serialized_name_list,
ezcontentclass.identifier as class_identifier,
ezcontentclass.is_container as is_container,
ezcontentobject_name.name as name, ezcontentobject_name.real_translation
FROM
ezcontentobject_tree,
ezcontentobject,ezcontentclass
, ezcontentobject_name
, server_votes
WHERE
ezcontentobject_tree.parent_node_id = 72 and
server_votes.server_id = ezcontentobject_tree.main_node_id AND
ezcontentclass.version=0 AND
ezcontentobject_tree.contentobject_id = ezcontentobject.id AND
ezcontentclass.id = ezcontentobject.contentclass_id AND
ezcontentobject.contentclass_id IN ( 48 ) AND
ezcontentobject_tree.contentobject_id = ezcontentobject_name.contentobject_id and
ezcontentobject_tree.contentobject_version = ezcontentobject_name.content_version and
( ezcontentobject_name.language_id & ezcontentobject.language_mask > 0 AND
( ( ezcontentobject.language_mask - ( ezcontentobject.language_mask & ezcontentobject_name.language_id ) ) & 1 )
+ ( ( ( ezcontentobject.language_mask - ( ezcontentobject.language_mask & ezcontentobject_name.language_id ) ) & 2 ) )
<
( ezcontentobject_name.language_id & 1 )
+ ( ( ezcontentobject_name.language_id & 2 ) )
)
AND ezcontentobject_tree.is_invisible = 0
AND
ezcontentobject.language_mask & 3 > 0
ORDER BY server_votes.vote_count ASC
LIMIT 0, 25
Gibt es da eine Möglichkeit? Danke schon mal für die Antworten.