sql - 双左连接中的重复列 - bigquery sql
问题描述
我正在处理三个需要连接的表。这些表是“默认”、“程序”和“事务”。事务和程序需要加入,然后需要加入默认值。我不断收到此错误:
'当存在目标表时,不支持结果中的重复列名。发现重复项:url、id、idNetwork、type、updated'。
这是我试图运行的代码:
with renamed_b as (
select *, url as b_url, id as b_id, idNetwork as b_idNetwork, type as b_type, updated as b_updated from `{{ extract.program.sql_source }}`
), renamed_a as (
select *, url as a_url from `{{ extract.default.sql_source }}`
)
select * from renamed_a a
left join renamed_b b
on a.commission_transaction_id = b.id
left join `{{ extract.transaction.sql_source }}` d
on d.idProgram = b.id
id、idNetwork、type 和 updated 不会出现在默认表中,并且我已经重命名了 program 表中的列,所以我真的不清楚重复列的来源。
任何建议将不胜感激。请让我知道是否有更多信息有助于包括(:
解决方案
尝试显式选择所需的所有列,而不是使用*
.
当你select *, url as b_url [..]
发生的事情是会有一个url
和b_url
列(意味着你的两个 CTE 都包含一个名为url
! 的列),因此会出现重复列错误。
推荐阅读
- python - 如何在熊猫数据框中列出唯一组合
- python - 随机森林特征重要性的交叉验证数据集折叠
- javascript - 如何允许用户在我的网站上使用 Gmail 登录
- php - ZendFramework 2 - 我的班级中的 ServiceManager
- ruby-on-rails - 使用对活动存储导轨的反应上传图像
- intellisense - VBE 中的 Intellisense 不能对对象完全起作用
- java - camel-http4 2.22 - toD 不工作
- r - 从R中的坐标分组中保存线的快速方法
- javascript - Javascript,存储一个数字并在另一个 html 页面上检索
- hadoop - 配置 radoop 时测试失败的 hive 连接