У меня есть две таблицы, как показано нижеJoin Table и заполнить пустой столбец с возвращаемым значением таблицы
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
я использую запрос присоединиться ОБА таблица
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
возвращение результат будет
id name type_name
-- ---- ---------
123 Test1 hello
124 Test2
125 Test3
126 Test4 hello
мой вопрос в том, как я заполняю нулевой столбец «hello», а также результат возврата из TableB, type_id = '2' будет иметь аналогичную строку через этот TableB
Я не совсем понимаю. Зачем вам нужно заполнять столбец «null» символом «привет»? Предполагаете ли вы, что 'type_id = 2' всегда будет возвращать' hello'? Если это так, это будет другой запрос с использованием «cross join». – sgeddes
Да, сами данные для type_id = 2 будут также «hello» – hghew
Если вы знаете, что это всегда 'hello', почему бы просто не использовать' hello'? Если это динамически основано на 'type_id', тогда вы должны использовать' cross join'. Тем не менее, ваши данные примера не предполагают, что 'type_id' всегда одинаково для' значения' ... – sgeddes