Я застрял в реализации нижележащего требования. Пожалуйста, помогите мне исправить этот запрос.
Требование
Условие должно быть реализовано в теории
Необходимо заполнить данные для market_num в таблице "demo" из таблицы "table1" или "table2" на основе столбца "source_country_palce" в таблице "demo". Он должен быть выбран из "table1", если он есть, там еще нужно выбрать "table2". Я застрял в написании условия. Пожалуйста, помогите мне исправить это
Запрос попробовал
условие 1
select distinct b.market_num
from test.demo a
join test.table1 b on a.source_country_palce = b.market_palce
where b.market_num >=1
условие 2
select distinct b.market_num
from test.demo a
join test.table2 b on a.source_country_palce = b.country_palce
where b.market_num >=1
Но я застрял в реализации вышеприведенного условия, например, когда первое условие не удается, тогда мне нужно выбрать "market_num" из второго условия
Мое чистое предположение:
select distinct coalesce(b.market_num,c.market_num )
from test.demo a left outer join test.table1 b
on a.source_country_palce=b.market_palce
left outer join test.table2 c
on a.source_country_palce=c.country_palce
where b.market_num >=1 or c.market_num >=1 ;
Вы можете попробовать следующее:
SELECT DISTINCT COALESCE(b.market_num, c.market_num)
FROM test.demo a
LEFT JOIN test.table1 b ON a.source_country_palce = b.market_palce
AND b.market_num >= 1
LEFT JOIN test.table2 c ON a.source_country_palce = d.country_palce
AND b.market_num < 1
AND c.market_num >= 1
Я помещаю ваши условия в соединение таким образом, что он будет соответствовать только, если второе соединение, если оно не будет первым.