SQL 为另一个 table 中的每个不同值添加 table 子集

SQL add table subset for each distinct value in another table

我想将 table (t2) 的一个子集添加到另一个 table (t1) 中,每个 customer_id 一次。

t1表示有序的materials。 t2代表静态table代表高销量materials.

我们的目标是为每个客户创建一个 table 和 material 列表。 (t2) 不包含任何 customer_id 引用,但包含 region_id 键。

基本上我需要的是“将此子集 material 列表添加到您现有的 material 列表中 each customer 基于他所在的地区”

我不知道如何 join/union 那些没有 customer_id 的 table,因为我会得到重复的条目。

t1 看起来像这样:

Customer_id region_id material_id
155 南美[​​=163=] AA-123-526
155 南美[​​=163=] AA-425-123
157 南美[​​=163=] AA-123-623
157 南美[​​=163=] AA-612-244
158 SOA AA-123-456
158 SOA AA-655-876

t2 看起来像这样:

region_id material_id
南美[​​=163=] BB-724-623
南美[​​=163=] BB-421-125
DACH BB-123-622
DACH BB-421-231
SOA BB-123-551
SOA BB-421-125

期望的输出:

Customer_id region_id material_id
155 南美[​​=163=] AA-123-526
155 南美[​​=163=] AA-425-123
155 南美[​​=163=] BB-724-623
155 南美[​​=163=] BB-421-125
157 南美[​​=163=] AA-123-623
157 南美[​​=163=] AA-612-244
157 南美[​​=163=] BB-724-623
157 南美[​​=163=] BB-421-125
158 SOA AA-123-456
158 SOA AA-655-876
158 SOA BB-123-551
158 SOA BB-421-125

示例数据

SELECT * FROM t1
SELECT * FROM t2

解决方案

SELECT  t1.Customer_id, t1.region_id, t1.material_id FROM t1
UNION ALL
SELECT DISTINCT t1.Customer_id, t2.region_id, t2.material_id
FROM t2 INNER JOIN t1 ON t2.region_id = t1.region_id
ORDER BY t1.Customer_id