ich habe zwei Tabellen wie untenTabelle und füllen null Spalte mit Rücktabellenwert
TableA
A_id name
---- ----
123 Test1
124 Test2
125 Test3
126 Test4
TableB
B_id fk_A_id value type_id
---- ------- ----- -------
1 123 op1 1
2 123 hello 2
3 123 abc 3
4 126 op2 1
5 126 hello 2
6 126 def 3
i-Abfrage verwenden beide Tabelle beitreten
select TableA.A_id as id, TableA.name as name, TBL2.type_name as type_name
from TableA
full join (
select fk_A_id, value as type_name
from TableB
where type_id = 2
)TBL2 on TableA.A_id = TBL2.fk_A_id
das Rückergebnis wäre
id name type_name
-- ---- ---------
123 Test1 hello
124 Test2
125 Test3
126 Test4 hello
Meine Frage ist, wie fülle ich die Null-Spalte mit 'Hallo' auch das ist das Ergebnis der Rückgabe von TableB, der Typ_ID = '2' wird über diesen TableB ähnliche Saite haben
Ich bin nicht ganz verstehen. Warum möchtest du die Spalte 'null' mit 'hallo' füllen? Gehen Sie davon aus, dass 'type_id = 2' immer' hallo' zurückgibt? Wenn dies der Fall ist, würde dies eine andere Abfrage sein, die stattdessen eine Kreuzverknüpfung verwendet. – sgeddes
Ja, die Daten selbst für type_id = 2 werden auch 'hallo' sein – hghew
Wenn du weißt, dass es immer 'hallo' ist, warum nicht einfach' hallo' benutzen? Wenn es basierend auf der 'type_id' dynamisch ist, sollten Sie eine' cross join' verwenden. Ihre Beispieldaten schlagen jedoch nicht vor, dass die 'type_id' immer die gleiche pro' Wert' ist ... – sgeddes