【发布时间】:2015-06-23 06:38:26
【问题描述】:
我有两个表,例如 Table1 和 Table2。 Table1 包含三个名为 name、age 和 marks 的列,其中标记列为空,我需要从 Table2 中填充。表 2 包含名为 name_en 和 marks 的两列。请注意,Table1 的行数比 Table2 的多,最终结果中只有几行可以是空白的。它类似于 Excel 的 VLookUp 功能。我正在尝试以下查询。
INSERT INTO Table1(marks)
SELECT * FROM Table2
LEFT JOIN Table1
ON Table1.name = Table2.name_en
提前致谢
【问题讨论】:
-
不要将 DBMS 用作 Excel 电子表格。首先,根据使用情况为您的表命名。 “table1”和“table2”没有任何意义。其次,不需要在数据库中两次存储信息。您可以在需要时通过适当的查询(通常是联接)很好地获取所需的所有信息。示例:
SELECT u.name, u.age, m.marks FROM table1 AS u LEFT JOIN table2 AS m ON m.name_en = u.name ;(table1 中根本不需要列“marks”。我假设 table1 有“users”信息,table2 有“marks”信息。) -
我实际上需要那个表中的标记
-
也许你会。当您使用“tableX”命名表时,我们无法相信这是最好的。
标签: postgresql join