phpbar.de logo

Mailinglisten-Archive

AW: [php] id aus mehreren tabellen selectieren und gruppieren

AW: [php] id aus mehreren tabellen selectieren und gruppieren

Tim Hildebrandt php_(at)_phpcenter.de
Fri, 6 Sep 2002 18:49:25 +0200


>da reicht ein selekt völlig aus:

>SELECT id.a, id.b, id.c FROM tabelle1 AS a, tabelle2 AS b, tabelle3 AS
>c

>ich glaub so müsste es funktionieren (hoffe ich, is nich getestet)


Hallo,

Deine Lösung ist so nicht notwendig, da die Zuweiung eigener Aliases nur
dann notwendig sind, wenn z.B. in mehreren Tabellen identische Spalten-
namen vorhanden sind.

Beispiel:

Tabelle Firmenadressen
id, firmennamename, strasse, ...

Tabelle Ansprechpartner
id, id_adr, nachname, vorname, ...


Dann handelt es sich hierbei um eine klassische 1-n Verbindung, die
natürlich in beiden Tabellen indiziert sind und über die Verbindung
Firmenadressen.id <-> Ansprechpartner.id_adr zu referenzieren wären.

Bei einer Abfrage wie z.B.

SELECT Firmenadressen.*, Ansprechpartner.* FROM Firmenadressen,
Ansprechpartner WHERE Firmenadressen.id = Ansprechpartner.id_adr

ergäbe das eine Ergebnismenge, in der alle Datensätze aus Firmenadressen
in Verbindung mit den Ansprechpartnern enthalten wären. ABER: Ohne Aliases
über das Schlüsselwort 'AS' würde Dir beim PHP Befehl 'fetch_array'
die Spalte 'id' der Firmenadressen überschieben mit dem Inhalt der Spalte
'id' der Ansprechpartner und damit hättest Du in einer Liste immer
'falsche' ID-Zuordnungen im Bereich der Firmenausgabe.

Man löst das dann - wenn ich mich richtig erinnere - so

SELECT Firmenadressen.id as f_id, Firmenadressen.firmenname,
Ansprechpartner.id as a_id, Ansprechpartner.andereFelder FROM
Firmenadressen, Ansprechpartner WHERE ... siehe oben.

beim fetch_array-Befehl wären dann die einzelnen Aliases über

$f_array["f_id"] und $f_array["a_id"] erreichbar...


Ob Du dabei 2, 3 oder X Tabellen auf diese Weise referenzierst, ist
so weit ich weiß egal...


Geholfen??? Sonst frag ruhig noch was.


Gruß Tim


php::bar PHP Wiki   -   Listenarchive