SQL inner join?
Hallo,
es sind mehrere Tabellen gegeben, die alle mit einer Tabelle verknüpft werden. Läuft auch alles, aber über einzelne Abfragen. Ich kenne keinen Weg, um die Ergebnisse mit einer Abfrage angezeigt zu bekommen, aber vielleicht ja doch ?
Tabelle 1: ID, Feld X, ...
Tabelle 2: ID, Feld Y, ...
-----------
Tabelle 3: ID, Feld Z, ...
select .. from Tabelle1 inner join tabelle3 on ...
select .. from Tabelle2 inner join tabelle3 on ...
Aus Tabelle1 soll FeldX angezeigt werden, aus Tabelle2 FeldY und dann jeweils aus Tabelle3 FeldZ.
Allerdings kann in Tabelle1 ein Wert zu der ID sein, in Tabelle2 aber nicht. Dennoch müsste der Wert aus Tabelle1 mit zugehörigem Feld aus Tabelle3 angezeigt werden.
Das Ganze läuft über ein Abfragetool (QMF) unter DB2.
Falls das technisch doch möglich sein sollte, dann freu ich mich über ne Antwort :-)
2 Antworten
Es gibt nicht nur Inner Join:
Abgesehen davon:
Wenn Du bei den mehreren Joins immer die erste Tabelle angibst, sind alle Joins nur von dieser ersten Tabelle abhängig, unabhängig davon, ob die anderen gefunden wurden oder nicht.

Das ganze sollte mit einem Inner Join funktionieren. Hier eine Anleitung:
https://stackoverflow.com/questions/9853586/how-can-i-join-multiple-sql-tables-using-the-ids
Anstelle des
Tabelle1.*, Tabelle2.*, ....
kannst du einfach
Tabelle1.FeldX, Tabelle2.FeldY ...
wählen. Damit bekommst du dann nur die von dir gewünschten Einträge.