【问题标题】:How do write sql query to fix data issue如何编写 sql 查询来修复数据问题
【发布时间】:2020-09-23 13:21:39
【问题描述】:

我需要帮助解决 sql 查询的数据问题。我什至不知道它是否可以通过SQL查询来实现,请任何人帮助我。

Mysql 数据库有两个表名为:

  1. 员工

employee 表有以下四列:

employeeid, accountid, name, job
1            1         sagar  1
2            1         kumar  1
3            2         kumar  1

表的主键是复合键(employeeid,accountid);

  1. Effective_dated 员工

effective_dated_employee 表有以下五列:

employeeid, effective_start, effective_end, termiation, joing
1          2000-1-1         2021-1-1      T            2000-01-01
1          2012-1-1         2012-02-1     T            2012-01-1
2          2000-1-1         2021-1-1      T            2000-01-01
2          2012-1-1         2012-02-1     T            2012-01-1
3          2000-1-1         2021-1-1      T            2000-01-01

表的主键是复合的(employeeid、effective_start、effective_end),其中employeeid 是对employee 的外键引用->employeeid

现在我在 Effective_dated_employee 中添加了一个新的 acoountId 列,该列也将成为复合键的一部分,并且是对员工的外键引用->accountid

问题:我想从员工表帐户列中更新有效日期员工帐户列,例如

employeeid, effective_start, effective_end, termiation, joing       accountid
1          2000-1-1         2021-1-1        T            2000-01-01   1
1          2012-1-1         2012-02-1       T            2012-01-1    1
2          2000-1-1         2021-1-1        T            2000-01-01   1
2          2012-1-1         2012-02-1       T            2012-01-1    1
3          2012-1-1         2012-02-1       T            2012-01-1    2

如何使用 sql 查询来实现这一点。任何帮助将不胜感激。

【问题讨论】:

  • 你似乎是在描述JOIN。你试过什么?

标签: mysql sql


【解决方案1】:

你只需要像这样连接两个表:

update effective_dated_employee ede
join Employee e on (e.employeeid = ede.employeeid)
set ede.accountid = e.accountid

我为此创建了一个演示:

DEMO

【讨论】:

  • 哇。我从来不知道会这么容易。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-11-26
  • 1970-01-01
  • 2020-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多