Left Join mit veränderter Spalte

Hallo Experten,

ich suche gerade verzweifelt eine Möglichkeit ein LEFT JOIN zu verwirklichen…

Ich habe dabei mehrere Tabellen.
In einer steht u.a. ein identifier für eine andere Tabelle - allerdings ist das nicht der komplette identifier, sondern nur ein Teil davon.
Nun muss ich irgendwie eine virtuelle Spalte erzeugen, die ein präfix trägt, so dass das left join dann klappen kann…

Vielleicht ist es auch verständlicher, wenn ich es skizziere…

Tabelle 1:
name ident
alpha test
beta hund
gamma katze

Tabelle 2:
ident was
fell\_hund braun
laut\_hund bellt
fell\_katze schwarz
laut\_katze miau

Nun soll die Zuordnung von beta sein, dass ich gleichzeitig weiss, dass der Hund gamma bellt und braunes Fell hat :wink:
sprich das ergebnis soll sein:

name ident was wie
gamma hund braun bellt

Das was und wie ist im prinzip zweimal das gleiche - also 2x left join denke ich…
Aber wie bekomme ich es hin, dass ein
fell_hund mit hund verlinkt werden kann?

Vielen Dank
Munich

Hi,
dir ist schon klar, dass du da ein ziemlich perverses Datenbankmodel hast (wenn man es überhaupt so nennen will)

Aber zum rein technischen Problem.

deine Join Bedingung muss in etwa so aussehen (die eigentliche Syntax für nen Join scheinst du zu kennen!?):

b.ident = ‚fell_‘ || a.ident

wobei b ein alias für die Tabelle 2 ist und a für Tabelle 1.
|| ist der concat Operator und sieht bei Oracle so aus. Keine Ahnung wie das bei anderen Datenbanken aussieh + vielleicht oder concat(‚fell_‘, a.ident). Nach Concat in der englischen doku suchen sollte weiterhelfen.

Ich weiß auch nicht ob solche Joins von allen üblichen DBs unterstützt werden.

HTH
Jens

vielen Dank :smile:

ich hatte schon perversere Queries, wo sich im Script selbst ein left join zusammengesetzt hat, das mehrmals über die gleiche Tabelle ging ^^
Aber solange es funktioniert beschwere ich mich nicht ^^
Und es wird ja auch nicht 1000x pro Stunde aufgerufen :wink: