【发布时间】:2015-09-12 12:32:11
【问题描述】:
我有两张桌子。第一个表名为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 表)中的 "?"。我的目标是能够将第二个表(batchdate 表)中的 BatchDateId 设置为日期(例如2015-06-25)。
但问题是,假设我明天再次运行查询,我希望它使用 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 在不同的日子(这也将改变 @ 987654340@),则 BatchDateId 应更改为包含新 Date 的新 Id。如果employeeinfo 中的现有行没有受到影响或这些行在同一天更新,则BatchDateId 保持不变;但是,如果有新行,那么它们应该有不同的BatchDateId(基于batchdate 表中的新行)。
【问题讨论】:
标签: mysql join sql-update sql-insert