如何在红移的不同表中执行multiple join语句中的case条件?

ctzwtxfj  于 2021-06-25  发布在  Mysql
关注(0)|答案(2)|浏览(654)

我坚持执行以下要求。请帮助我解决这个问题
要求
这一条件需要在理论上加以落实
需要根据“demo”表中的“source\u country\u palce”列,从“table1”或“table2”表中为“demo”表中的market\u num填充数据。如果有,请从“表1”中选择,否则需要从“表2”中选择。我一直在写这个条件。请帮助我解决这个问题
我试过了
条件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

但我一直坚持执行上述条件,比如当第一个条件失败时,我需要从第二个条件中选择“市场数量”

lymgl2op

lymgl2op1#

你可以试试这个:

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

我将您的条件放在连接中,使其仅在第二个连接失败时匹配第一个连接。

xjreopfe

xjreopfe2#

我纯粹的猜测:

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 ;

相关问题