【发布时间】:2024-01-20 10:25:01
【问题描述】:
我有两个包含以下列的表格:
表 1:
OrderID RetailerName SKUs (varchar) OrderDate
-------------------------------------------------------
123 ABC 1,2 2016-11-11
124 DEF 3,4 2016-11-12
表 2:
SKU(int) Product
--------------------------
1 xx
2 xy
3 xz
4 yx
预期输出:
OrderID RetailerName OrderDate Product
--------------------------------------------
123 ABC 2016-11-11 xx
123 ABC 2016-11-11 xy
124 DEF 2016-11-12 xz
124 DEF 2016-11-12 yx
如何根据SKU 连接这两个表,即如何比较 table1 中的 SKUs (varchar) 列与 table2 中的 SKU (int) 列?
【问题讨论】:
-
请不要标记多个RDBMS,只标记您真正使用的一个。
-
至于您的问题,解决方案是修复您的设计。不要在一行的一列中存储多个值;你应该有多行。修复设计,这个问题就不存在了。你在这里所做的是打破了范式的基本规则之一。
-
@Mureinik 我已经添加了预期的输出,我正在使用 MySql DB 请帮帮我。
-
仍然不知道您使用的是什么 dbms - Access、MySQL、SQLServer、Oracle?不能按设计直接加入这些表。 SKUs 字段中允许有多少个 SKU?这是一个逗号分隔值字符串?
标签: mysql sql csv join casting