sql - 大查询:当 1 个表包含用户 ID 数组时,如何在用户 ID 上连接 2 个表?
问题描述
StackOverflow 上已经发布了一些类似的答案,但他们没有解决这个特定案例或涉及我无法理解的查询,因为我刚刚开始了我的第一个 SQL 相关职位。
这是我第一次尝试在我以数组的形式加入的一个表中加入具有列值的表。在尝试解决我自己的问题后,我遇到了以下错误:No matching signature for operator = for argument types: ARRAY<INT64>, STRING
.
我有 2 个表格,如下所示:
表格1:
team_id user_id
1 [1, 2, 3]
2 [4, 5, 6]
3 [7, 8, 9]
4 [10, 11, 12]
表 2:
user_id value
2 10
5 20
7 30
12 40
我想通过让表2分析表1的数组中是否有匹配的user_id来将表2加入表1。如果有,则根据常见的user_id加入并输出结果如下:
期望的输出
team_id user_id value
1 2 10
2 5 20
3 7 30
4 12 40
提前感谢您分享您的知识!
解决方案
您可以加入unnest()
:
select t1.team_id, t2.user_id, t2.value
from table1 t1
inner join table2 t2 on t2.user_id in unnest(t1.user_id)
推荐阅读
- python - Django/Python - 上传自定义脚本 - 如何运行它们?
- tensorflow - 我一直在使用 Keras 训练我的图像分类模型。在我将类别数量从 3 个增加到 4 个之后,我得到了一个错误?
- java - 模拟按键?
- github - 使用 NuGet 发布和使用 GitHub 包存储库:无法加载服务索引错误
- google-cloud-platform - 删除 BigQuery 中数组之间的重复值
- google-cloud-platform - 如何在其区域之外私下共享 Google Cloud SQL
- tsql - SQL 根据 3 个日期范围返回一个值
- vue.js - 为 Vuetify v-file-input 提供初始文件名值
- python - Buttonpress 上的 Kivy Python Recycleview 更新
- javascript - 通过动态生成在屏幕上和屏幕外为 SVG 对象设置动画