如何使用 table 中的值输出 table,以及引用 table 的重复查找 ID(在 Pentaho PDI 和 SQL 中)

How to output a table with values from a table, alongside repeated lookup id's of a reference table (in Pentaho PDI and SQL)

考虑一下,我有 table_A,比如:

table_A

+--------+--------+--------+-----+
| code_1 | code_2 | code_3 | qty |
+--------+--------+--------+-----+
|   0.5  |   0.6  |   0.2  |  3  |
+--------+--------+--------+-----+
|   0.8  |   1.2  |   3.2  |  4  |
+--------+--------+--------+-----+
|   3.0  |   2.2  |   0.4  |  7  |
+--------+--------+--------+-----+

和一个reference_table,比如:

reference_table

+--------+--------+
|   id   | code   |
+--------+--------+
|    1   | code_1 |
+--------+--------+
|    2   | code_2 |
+--------+--------+
|    3   | code_3 |
+--------+--------+

现在,我想获得如下输出:

output_table

+--------+--------+--------+
|   id   |  value |   qty  |
+--------+--------+--------+
|    1   |   0.5  |    3   |
+--------+--------+--------+
|    2   |   0.6  |    3   |
+--------+--------+--------+
|    3   |   0.2  |    3   |
+--------+--------+--------+
|    1   |   0.8  |    4   |
+--------+--------+--------+
|    2   |   1.2  |    4   |
+--------+--------+--------+
|    3   |   3.2  |    4   |
+--------+--------+--------+
|    1   |   3.0  |    7   |
+--------+--------+--------+
|    2   |   2.2  |    7   |
+--------+--------+--------+
|    3   |   0.4  |    7   |
+--------+--------+--------+

注意:- 参考文献 table 在 MySQL 数据库中,table_A 在 MSSQL 数据库。我使用 Pentaho PDI 从 table 获取数据(在不同的数据库中,通过“Table 输入”步骤)。

如何在Pentaho PDI - Spoon (ETL)中获得output_table

此外,在 SQL 中是如何完成的(如果两个 table 都在同一个 MSSQL 数据库)?

提前致谢:)

在 SQL 服务器中,您可以使用横向连接——即关键字 apply:

select r.id, v.value, a.qty
from table_A a cross apply
     (values ('code_1', a.code_1), ('code_2', a.code_2), ('code_3', a.code_3)
     ) v(code, value) join
     reference r
     on r.code = v.code;