Hi Philipp!
Das heißt ich merke hinterher gar nicht mehr welches Feld aus welcher Tabelle kommt.
Ja...? - Das ist auch richtig so, denn jeder Query gibt dir eine ResultSet zurück,
was ebenfalls wider eine Tabelle ist. Der Query ist nur eine Abbildungsvorschrift und
es ist streng genommen nur ein "Spezialfall", wenn ein Feld auch äquivalent in der
Ergebnisrelation abgebildet wird. Eine Zuordnung zu einer früheren Bezeichnung ist
eigentlich falsch (obwohl eigentlich manchmal, wie bei dir jetzt, wünschenswert).
Ich will gar nicht auf die Tabelle schließen. Mir geht es erstmal um die Query und dessen Auswertung an sich.
Ich zeige mal was ich z.B. mache(PHP+PEAR):
$sql = "
SELECT
*
FROM
".DB_PREFIX."events as events
LEFT JOIN
".DB_PREFIX."event_types as types
ON events.event_typ = types.event_typ_id
WHERE
events.group_id = '".$user->getVar('group_id')."'
";
print_r($db->getAll($sql));
Jetzt bekomem ich z.B. so einen Array:
array(
'1' => array(
'id' = 123,
'name' = andreas,
'typ' = a
)
'2' => array(
'id' = 456,
'name' = philipp,
'typ' = b
)
)
Hierbei stammt z.B. 'id' aus Tabelle 'events' und 'typ'aus der Tabelle 'event_types'.
Genau das ist es was ich haben will, denn so kann ich das ganze sehr schön an ein Template übergeben und dort einfach ausgeben.
Aber kann das jede DB so machen?
Was sicher funktioniert ist:
SELECT
events.id as id,
events.name as name,
types.typ
FROM
".DB_PREFIX."events as events
LEFT JOIN
".DB_PREFIX."event_types as types
ON events.event_typ = types.event_typ_id
WHERE
events.group_id = '".$user->getVar('group_id')."'
";
Nur ist das bei mir noch ne Ecke komplexer, daher würde ich gerne da drauf verzichten. Die Frage ist halt, wenn ich mehr als eine Tabelle in der Abfrage verwende, muss ich dann alle Felder einzelnd mit einem Alias versehen, damit sie auch z.B. in PostgreSQL korrekt (in Form eines solchen Array wie oben) ausgegeben werden können? Und was wenn ich nur einen gleichen Feldnamen in 2 Tabelen habe, dann geht es wohl nicht anders, oder?
Viele Grüße
Andreas