【问题标题】:Filter one table based on values from another table column根据另一表列中的值过滤一个表
【发布时间】:2014-10-03 13:07:17
【问题描述】:

我有一个包含 2 列(materialID | name)的表“PackagingType”和另一个包含 ID 和材料详细信息的表“materials”。

对于“包装类型”中的每个名称,我想指定可用的材料(例如,在材料 ID 列中,我将有 1、3、4、5)。

我需要将这些材料ID与材料表匹配并提取详细信息。

正确的做法是什么?不确定将数据存储为 1,3,4,5 是否正确,语法是什么样的?

【问题讨论】:

标签: mysql compare comparison multiple-columns


【解决方案1】:

在关系数据库设计中,您不会将值组合到一个单元格中。有例外,但很少而且相差甚远。这不会是规范化的数据,并且会使未来的查询和分析变得困难/复杂。因此,对于不同的 materialID,PackagingType 应该多次具有相同的名称。

所以表格会有类似的数据

MaterialID Name
1          PackageA
3          PackageA
4          PackageA
5          PackageA

然后,您只需加入材料描述即可获得结果。

SELECT PT.MaterialID, PT.Name, M.Detail
FROM PackagingType PT
INNER JOIN Materials M
 on PT.MaterialID = M.MaterialID

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多