fusionieren Ich habe vier Tabellen:SQL SELECT zwei Spalten in einer
Tabelle A:
ID | B_ID
----------
1 | 5
2 | 6
3 | 7
4 | 8
Tabelle B:
B_ID
-----
5
6
7
8
Tabelle C:
C_ID | C_Name
--------------
5 | Alpha
6 | Beta
Tabelle D:
D_ID | D_Name
--------------
7 | Delta
8 | Gamma
Hinweis, dass die Werte in der Tabelle B entweder aus Tabelle C Tabelle D oder kommen können
Ich muss nun eine Abfrage, die Name
genannt ID
aus Tabelle A und eine zweite Spalte zeigt, welche die entsprechenden besteht aus basierend Namen auf der B_ID
Spalte der Tabelle B
das erwartete Ergebnis sollte wie folgt aussehen:
ID | Name
----------
1 | Alpha
2 | Beta
3 | Delta
4 | Gamma
Was ich diese Abfrage ist versucht:
SELECT *
FROM B
LEFT OUTER JOIN C
ON B_ID = C_ID
LEFT OUTER JOIN D
ON B_ID = D_ID
Dies ergibt:
B_ID | C_ID | C_Name | D_ID | D_Name
-------------------------------------
5 | 5 | Alpha | Null | Null
6 | 6 | Beta | Null | Null
7 | Null | Null | Null | Delta
8 | Null | Null | Null | Gamma
Allerdings habe ich noch zwei Fragen:
- ich die Namen in einer einzigen Spalte fusionieren müssen (die erwartete Ergebnis siehe oben)
- Es muss eine Unterabfrage von
SELECT
basierend auf Tabelle A sein, um diezu zeigenSpalte der Tabelle A.
bitte gewünschten Ausgang hinzufügen, damit wir es besser verstehen können –
es ist bereits hinzugefügt. Bitte lesen Sie. siehe 'Das erwartete Ergebnis sollte wie folgt aussehen:' – beta
Naja, mein Schlechter –