sqlpresto查询可交互联接两个表



我需要在sql查询中执行此操作。让我知道这是否可能

我有一个表,它有一个类似(表1(的映射

num,value
2,'h'
3,'b'
5,'c'

现在我有了另一个有这些值的表(表2(

name, config
"test1",45
"test2",20

现在我想要的是sql查询,它将通过检查config列值是否可被table1.num整除,以及如果是,将table1.value连接到它来向我的table2添加另一列

所以现在sql查询之后,它应该变成

name, config, final
"test1",45, bc
"test2",20, hc

请让我知道我是否可以对这个进行查询

您可以使用交叉连接,mod函数https://dev.mysql.com/doc/refman/8.0/en/mathematical-functions.html#function_mod和group_concathttps://dev.mysql.com/doc/refman/8.0/en/group-by-functions.html#function_group-concat

select t2.name,t2.config,group_concat(t1.value separator '') final
from table1 t1
cross join table2 t2
where t2.config % t1.num = 0
group by t2.name,t2.config
+-------+--------+-------+
| name  | config | final |
+-------+--------+-------+
| test1 |     45 | bc    |
| test2 |     20 | hc    |
+-------+--------+-------+
2 rows in set (0.00 sec)

p.Salmon的答案应该适用于MySQL。如果你正在使用Presto,那么这将起作用:

SELECT t2.name,
t2.config,
array_join(array_agg(t1.value),'','') AS final
FROM table1 t1
CROSS JOIN table2 t2
WHERE t2.config % t1.num = 0
GROUP BY t2.name,
t2.config

相关内容

  • 没有找到相关文章

最新更新