Probleme bei Join!

BeaTBoxX

Erfahrenes Mitglied

Hallo zusammen,

ich hab ein "Problem" bei nem Join:
Ich joine eine (fixe) Tabelle durch ein PHP Script mit jeweils einer zweiten.
Die zweite Tabelle ist eine von (im Mom.) 5 Stück.
Je nachdem was der Benutzer auf der Seite macht, entscheidet sich, welche Tabelle zu meiner ersten hinzugejoint wird.

Also sinngemäß
Tabelle A -> Join mit B1

oder
Tabelle A -> Join mit B2

oder
Tabelle A -> Join mit B3

usw.

Nun hab ich aber sowohl in Tabelle A als auch in den B-Tabellen ein Feld "id"
Wie kann ich die beiden Felder nach dem Join unterscheiden (In der Ergebnistabelle) ?

Konkret angeben welche Spalten selektriert werden sollen kann ich so ohne weiteres nicht, da die B-Tabellen (bis auf die id und eine Referenzspalte) völlig unterschiedlich sind.
Deswegen habe ich ein SELECT * gemacht.
Dabei kann ich aber wiederum nicht eine der beiden ( für mich irrelevanten) id-felder ausschliessen.

Kann mir da wer helfen wie man das geschickt hinbekommen kann?
Geht das überhaupt?
Die Spaltrennamen von "id" in irgendwas anderes zu aendern wäre ein recht grosser Aufwand. Das würde ich nur tun wenn es WIRKLICH keine andere möglichkeit gibt.


Danke!

Gruß
Frank

PS: Mir fällt grade noch ein, ich könnte vor dem Join herausfinden welche Spaltennamen die jeweilige B-Tabelle hat und auf diese art konrkete Spaltennamen angeben. Was aber auch rel umständlich wäre. Evtl hat ja jemand ne elegante Lösung :)
 
Zuletzt bearbeitet:
Hallo,


meiner Meinung nach kann es funktionieren in dem du im select genau das Attribut benennst z.B.

select a.id, a.name, a.vorname, b.strasse, b.plz from a,b where a.id = b.id
$stmnt = OCIParse ($conn, $sql_string);
OCIExecute($stmnt);
for ($i=0 ;$wert=OCIFetchinto($stmnt,&$row); $i++)
{
$altid = $row[0];
$altname = $row[1];
$altvorname = $row[2];
$altstrasse = $row[3];
$altplz = $row[4];

}
bei den weiteren Abfragen kannst du nun mit z.B. $altid weiterarbeiten und die Abfrage ist ja auf das erste Attribut der Abfrage definiert.

Vielleicht kommst du so weiter

Gruß
 
Hmja ich befuerchte auch ich muss vorher jeweils herausfinden welche Daten in der jeweiligen B-Tabelle stehen.. und dann konkrete Attribute angeben.

Anders gehts wohl nicht ;)

Danke
Gruß
Frank
 
Zurück