gpt4 book ai didi

mysql - 连接表并在mysql中的两个不同表中搜索数据

转载 作者:行者123 更新时间:2023-11-29 09:24:14 24 4
gpt4 key购买 nike

表 1:完整

id name country street
1 ab xx xxx
2 bd xx xxx
3 dc xx xxx

表2:old_data

id language area_name  market_name
1 en xx xxx
2 cz xx xxx

表 3:new_data

id language area market
2 fr xx xxx
3 cz xx xxx

现在,使用 MySQL,我想合并表并查找相关详细信息。逻辑是:如果“new_data”中不可用,则只能在“old_data”中找到它

输出:

id name country street language area market
1 ab xx xxx en xx xxx
2 bd xx xxx fr xx xxx
3 dc xx xxx cz xx xxx

注意:表 1 的行数 = 输出表的行数。

最佳答案

您可以左连接这两个表,然后使用coalesce()来选择相关值:

select 
t.*,
coalesce(n.language, o.language) language,
coalesce(n.area, o.area) area,
coalesce(n.market, o.market) market
from table_full f
left join table_old_data on o.id = f.id
left join table_new_data n on n.id = f.id

这假设语言区域市场永远不null。如果这不是 cas,那么您可以将 coalesce() 表达式更改为:

select 
t.*,
case when n.id is not null then n.language else o.language end language,
case when n.id is not null then n.area else o.area end area,
case when n.id is not null then n.market else o.market end market
from table_full f
left join table_old_data on o.id = f.id
left join table_new_data n on n.id = f.id

关于mysql - 连接表并在mysql中的两个不同表中搜索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59877125/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com