gpt4 book ai didi

mysql - 根据日期(在表中)将 tableA 的列值设置为表的 id

转载 作者:行者123 更新时间:2023-11-30 22:41:23 25 4
gpt4 key购买 nike

我有两张 table 。第一个表称为 employeeinfo,它看起来像这样:

______________________________________________________________________
| Id | FirstName | LastName | Hours | Rate | TotalCost | BatchDateId |
|____|___________|__________|_______|______|___________|_____________|
| 1 | John | Smith | 30 | 40 | 1200 | ? |
|____|___________|__________|_______|______|___________|_____________|
| 2 | Jane | Doe | 40 | 100 | 4000 | ? |
|____|___________|__________|_______|______|___________|_____________|

第二个表称为 batchdate,它看起来像这样:

___________________
| Id | Date |
|____|____________|
| 1 | 2015-06-25 |
|____|____________|

注意第一个表(employeeinfo 表)中的 “?”。我的目标是能够将 BatchDateId 设置为第二个表(batchdate 表)中基于日期(例如 2015-06-25)的 Id

但要注意的是,假设我明天再次运行查询,我希望它用 batchdate 中的新 Id 更新 BatchDateId 表(因为它将有一个新行,其中包含一个新的 Id 和一个新的 Date)。

提前致谢!

编辑:到目前为止,我的陈述如下:

String employeeInfo = "INSERT INTO employeeinfo (FirstName, LastName, Hours, Rate, TotalCost, BatchDateId) "
+ "(?, ?, ?, ?, ?, ?)"
+ " ON DUPLICATE KEY UPDATE "
+ "Hours=(?), Rate=(?), TotalCost=(?);";

和:

String batchDate = "INSERT INTO batchdate (Date) VALUES " 
+ "(?)"
+ " ON DUPLICATE KEY UPDATE "
+ "Date=(?);";

EDIT2:所以我想做的是,假设我已经更新了 John Smith 的Hours 和/或Rate 在不同的一天(这也将更改 TotalCost),然后 BatchDateId 应更改为包含新 Date 的新 Id 。如果 employeeinfo 中的现有行均未受到影响,或者这些行在同一天更新,则 BatchDateId 保持不变;但是,如果有新行,则它们应该具有不同的 BatchDateId(基于 batchdate 表中的新行)。

最佳答案

如果我没记错的话,你可以在表之间做一个JOIN,这将得到匹配的Id,然后执行一个UPDATE操作如下图

update employeeinfo a
join batchdate b on a.Id = b.Id
set a.BatchDateId = b.Id;

关于mysql - 根据日期(在表中)将 tableA 的列值设置为表的 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31058181/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com