将数据添加到主表上的多个记录的链接表中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将数据添加到主表上的多个记录的链接表中相关的知识,希望对你有一定的参考价值。

我有一个短文本字段“ItemID”的一对多链接表,主表包含100个记录,链表是空白的,包含3个字段; “ID”,“ItemID”和“Job”。如附图所示Example。 是否可以通过其任何字段过滤主表,然后将记录插入到主表上所有过滤记录的链接表中? 例如通过材料“wood”过滤主表,然后在链接表上为所有过滤的项添加“作业”。 注意:我之前在主表上使用了Multi Values Field for Job,但由于选择,复制,编辑和擦除的困难,我改为链接表。

答案

我们以“材料”过滤器为例。

为了达到你想要的效果,你必须有一个第三个表“Material_Jobs”,列出了每种材料的所有步骤,以及它们的顺序(例如,你应该知道在绘制之前切割)

就像是

 ID | Material  |  Job_Name | Step_Order
 ---------------------------------------
 1  | Wood      |  Cutting  | 1
 2  | Wood      |  Welding  | 2
 3  | Wood      |  Painting | 3
 4  | CS        |  Forming  | 1
 5  | CS        |  Welding  | 2
 6  | CS        |  Painting | 3

然后你可以做的是:

INSERT INTO Table2 (ItemID, JobID)
SELECT T1.ItemID, T2.ID 
FROM Table1 T1
INNER JOIN Material_Job T2 ON T1.Material = T2.Material
WHERE T1.Material='Wood'
ORDER BY T2.Step_Order 

这是一个非常简单的解释,但你现在应该有一个更好的主意

以上是关于将数据添加到主表上的多个记录的链接表中的主要内容,如果未能解决你的问题,请参考以下文章

在主表上的数据库触发器中将数据插入临时表

多个表上的雄辩的自定义“属于”关系

数据库表上的 1 对 1 关系有味道吗?

SQL:同一表上的多个连接的性能

将 5 个表数据合并到主表中

MYSQL:与 Group_Concatenate 一起使用的两个表上的左连接