【问题标题】:Inserting data to the table by querying from multiple tables [closed]通过从多个表中查询将数据插入到表中[关闭]
【发布时间】:2020-09-11 13:59:07
【问题描述】:

我想通过从“Access”和“Employee_old”表中查询数据来填充“Employee”表。

我只想填充“员工”表中不存在的较新记录。

以下查询工作正常,但我不知道如何从“帐户”表中填充“AccessType”[使用 AccessID] 任何帮助表示赞赏

INSERT INTO Employee (Name,Dept, Location, AccessID )
SELECT Name, Dept, Location, AccessID
from Employee_old
WHERE TimeStamp > (
    SELECT TimeStamp
    FROM Employee
    ORDER BY TIME_CREATED DESC
    FETCH FIRST 1 ROWS ONLY
)
Table Account
-- AccountID [PK]
-- AccessID
-- AccessType

Table Employee
-- EmployeeID [PK]
-- Name
-- Dept
-- Location
-- AccessID
-- AccessType

Table Employee_old
-- EmployeeID [PK]
-- Name
-- Dept
-- Location
-- AccessID
-- ManagerID
-- Grade

【问题讨论】:

  • 为什么在Employee 表中重复AccessType?您的数据模型已损坏。
  • 嗨,戈登,这只是一个示例。真正的表格要复杂得多。

标签: sql sql-server sqlite


【解决方案1】:

尝试以下操作,您必须使用AccessID 加入表account

INSERT INTO Employee (Name,Dept, Location, AccessID, AccessType)
SELECT 
  Name,
  Dept, 
  Location, 
  AccessID,
  AccessType 
from Employee_old eo
join account a
on eo.accessId = a.accessId
WHERE TimeStamp > (SELECT TimeStamp FROM Employee ORDER BY TIME_CREATED DESC FETCH FIRST 1 ROWS ONLY)

【讨论】:

    猜你喜欢
    • 2021-10-04
    • 1970-01-01
    • 2015-02-24
    • 2015-12-06
    • 1970-01-01
    • 2011-01-16
    • 2013-11-15
    • 1970-01-01
    • 2016-03-31
    相关资源
    最近更新 更多