Join ohne Mehrfachspalten? (sql*plus)

Hallo,
ich habe folgende Situation, eine eher unordentliche Datenbank hat über mehrere Tabellen hinweg ab und zu gleiche Spalten mehrfach.
Da ich sie nur einmal brauche, möchte ich sie auch nur einmal zurückholen.

Momentan sieht es etwa so aus:

Tab1
Name|Nummer|Alter
Tab2
Name|Nummer|Größe
Tab3
Name|Größe|Gewicht

Wenn ich jetzt etwas der Art mache:

select \* from Tab1
inner join Tab2 on (Tab1.Name=Tab2.Name)
inner join Tab3 on (Tab1.Name=Tab3.Name)
where Tab1.Name in ('Meier', 'Müller')

sieht das Resultat so aus:
Name|Nummer|Alter|Name_1|Nummer_1|Größe|Name_2|Größe_1|Gewicht

Was ich bräuchte, wäre:
Name|Nummer|Alter|Größe|Gewicht

Ich kenne die Möglichkeit, gewünschte Spaltennamen explizit anzugeben, aber es geht um sehr viele Spalten, die sich evtl. auch noch zukünftig ändern könnten, warum auch die Alternative mit den Mehrfachspalten problematisch wird.
Und nein, eine vernünftige relationale Struktur kann ich nicht auf der DB etablieren, weil die nicht mir gehört :frowning:

Dankeschön,
Mike

Ich kenne die Möglichkeit, gewünschte Spaltennamen explizit
anzugeben, aber es geht um sehr viele Spalten, die sich evtl.
auch noch zukünftig ändern könnten,

  • Da wird dir nichts übrigbleiben, als die Spalten explizit anzugeben. Oder du erstellst eine entsprechede View, welche dir das gewünschte resultset zurückgibt.

gruss

  • Da wird dir nichts übrigbleiben, als die Spalten explizit
    anzugeben. Oder du erstellst eine entsprechede View, welche
    dir das gewünschte resultset zurückgibt.

Naja, danke schon mal.
Ich kann mich erinnern, daß in der Vergangenheit sql ein wenig über die Länge der Eingabezeile gemeckert hatte, als ich das probiert habe

  • da war irgendwas mit 4000 oder 8000 Zeichen zwischen „SELECT“ und „FROM“, was ebenfalls zu Fehlern geführt hat -

D.h. mir bliebe nichts Anderes übrig, als über einen View zu gehen (das ist leider auch unerwünscht) oder das Ganze in mehrere separate SQL Statements zu füttern?

Hi,
4000-8000 Zeichen? Ok, ich verstehe das Problem :smile:

Du kannst die Notation auch mischen:

Select tab1.*, tab2.a, tab2.b …

Jens