如何通过引用另一个表来填充列

时间:2019-04-09 09:27:07

标签: mysql

我有2个表,“ test”和“ test_2”

第一个表为“ test”,列为“ TagID”和“ MachineID” 在这里,我建立了“ TagID”和“ MachineID”之​​间的链接

TagID | MachineID
1332  | 13
1544  | 86
1789  | 75

第二张表是“ test_2”,列为“ TagID”,“ MachineID”和“ Value” 在此表中,我将数据记录到“ TagID”和“值”列中

TagID | MachineID | Value
1789  | NULL      | 35
1332  | NULL      | 41
1544  | NULL      | 50

当我将数据连续记录到“ test_2”中时,是否可以使用表“ test”中的相应TagID自动填充表“ test_2”中的“ MachineID”列?

我可以用命令来做

   ALTER TABLE test_2
   ALTER  MachineID AS (CASE WHEN TagID = 1332 THEN 13 WHEN TagID 
   = 1544 THEN 75.....END)

但是我有899个不同的TagID,所以这将花费很多时间。

1 个答案:

答案 0 :(得分:0)

您不需要这样做。只需记录标签和值。然后,当您需要查看数据时,将SELECTINNER JOIN结合使用,从test_2进行联接,以使用tagID作为公共字段进行测试。然后,您可以在需要查看结果时将MachineID包含在结果中。

例如

SELECT 
  test_2.TagID, test.MachineID, test_2.Value 
FROM test_2 
  INNER JOIN test_2.TagID ON test.tagID

在两个表中复制数据没有意义-实际上,这样做违反了关系数据库的关键概念之一。