Andreas Korthaus: Joins mit gleichen Spaltennamen

Beitrag lesen

Hi!

Klar, aber das kann es doch auch nicht sein, dass ich ersteinmal bei jeder Abfrage mir die Tabellen-Struktur analysieren lasse und dann, damit ich kein * benutze, eine Abfrage mir dynamisch generiern lasse, dessen Spalten immer aller Spalten der Tabelle entspricht... da seh ich persönlich keinen Sinn drin.

Mag sein, aber Du solltest ja gemerkt haben dass es mit * eben nicht geht. IMHO hast Du 3 Möglichkeiten:

1. Du stellst tabellenweit eindeutige Spaltennamen sicher
2. Du benutzt keine Joins sondern fragst nur Tabellen ab und setzt die Arrays dann in PHP zusammen
3. Du fragst die Strukturen der Tabellen ab über die Du joinen willst, und erzeugst daraus ein entsprechendes SELECT-Statement mit passenden mit "Aliasen" für _alle_ Spalten, am besten setzt Du dann für jede Tabelle einen spezielle Prefix davor.

Ob das mit *_fetch_row() mit SELECT * geht weiß ich nicht, aber die Struktur musst Du in jedem Fall abfragen.

Der Einwurf bzgl. phpMyAdmin ist IMHO gerechtfertigt, wenn Du was Vergelichbares machen willst, denn im Prinzip ist das ja dasselbe wie "manuell SELECT *", da es nur zu Verwaltungszwecken dient.

Jede der genannten Möglichkeiten hat eigene Vor- und Nachteile. Musst halt sehen was Deinen Anforderungen am besten gerecht wird.

Du hast leider ein seltenes Problem, für sowas sind Datenbanken nicht gedacht. Es geht schlichtweg nicht so einfach wie Du es gerne hättest, das liegt wie gesagt an Deinem Vorhaben.

Wobei ich es nicht so ganz verstehe, denn wenn Du Joins verwendest, brauchst Du zwangsläufig Wissen über die Datrenstruktur, das geht nicht 100%ig dynamisch, da Du ja wissen musst worüber Du die(welche) Tabellen verknüpfen kannst.

Grüße
Andreas

PS: Wenn Du MS SQL verwendest, hierfür gibt es auch eine spezialisiertes Modul.