sql - 如何根据条件连接具有不同列的 2 个 SQL 表?
问题描述
我有 2 张桌子:CT 和 AC
当 CT.X = '1' 我想内部加入 CT.A 和 AC.A
当 CT.X = '2' 我想内部加入 CT.B 和 AC.A
对于任何其他 CT.X,我想将 CT.C 与 AC.A 内部加入
在 SQL 中执行此操作的优雅方法是什么?
解决方案
我认为这样的事情应该有效:
select *
from CT
inner join AC
on (CT.X = '1' and CT.A = AC.A)
or (CT.X = '2' and CT.B = AC.A)
or (CT.X <> '1' and CT.X <> '2' and CT.C = AC.A);
推荐阅读
- python - 向分区数据集添加新值 Pyarrow
- microsoft-graph-api - 对 OnPremise Exchange 的 Graph API 调用仅适用于 Playground
- r - R coxph 为时变协变量返回 NA
- php - 没有中间件的 Laravel 8 API 测试
- mysql - 为什么在终端中用select命令看不到一列内的数据,而在服务器web视图中可以看到数据?
- output - 如果 NMDS(素食主义者)收敛是不可能的,那是否会使输出无用?
- react-native - 世博会推送通知
- sql - 如何将 GROUPBY 与 INNER JOIN 一起使用?
- javascript - Javascript取消等待动画序列?
- flutter - Flutter 类“Productlist”没有实例方法“[]”。接收方:“Productlist”实例尝试调用:[]("price")