Php Mysql查询将记录从csv文件插入Mysql数据库

Php Mysql查询将记录从csv文件插入Mysql数据库,php,mysql,laravel,csv,Php,Mysql,Laravel,Csv,我正在尝试将数据从csv文件插入mysql数据库。数据被插入数据库。但不是我想象的那样。在我的例子中,有几个文本文件,其中包括员工id、日期、时间和超时。此外,如果同一个员工编号有一条记录的日期相同,则我希望验证这一点,因为该记录不允许插入任何数据 我的代码 电流输出 预期产量 最好使用SQL查询进行检查 我建议首先使用MySQL的加载数据将CSV数据加载到临时表中。完成此操作后,您可以使用以下查询将其插入到目标每日就诊表中: INSERT INTO daily_attendances (emp

我正在尝试将数据从csv文件插入mysql数据库。数据被插入数据库。但不是我想象的那样。在我的例子中,有几个文本文件,其中包括员工id、日期、时间和超时。此外,如果同一个员工编号有一条记录的日期相同,则我希望验证这一点,因为该记录不允许插入任何数据

我的代码

电流输出

预期产量
最好使用SQL查询进行检查


我建议首先使用MySQL的加载数据将CSV数据加载到临时表中。完成此操作后,您可以使用以下查询将其插入到目标每日就诊表中:

INSERT INTO daily_attendances (emp_id, date, in_time, out_time)
SELECT emp_id, date, MAX(in_time), MAX(out_time)
FROM temp
GROUP BY emp_id, date

此答案假设唯一的重复或丢失数据类型是您在问题中向我们展示的数据。一般来说,从CSV中引入大量新数据将是加载数据时最快的。此外,删除数据所需的逻辑应该在数据库中处理。

删除重复项可能应该在加载CSV数据后在数据库中完成。我不理解您的预期输出。时间戳18:18:21在哪里?它既不出现在原始的两行中,也不出现在原始的两行中。请在文件中添加csv数据结构。@TimBiegeleisen我已经编辑了这个问题,在这种情况下为id插入了什么值?
INSERT INTO TABLE_2 (id, name) SELECT t1.id,t1.name
FROM TABLE_1 t1
WHERE NOT EXISTS(SELECT id FROM TABLE_2 t2 WHERE t2.id = t1.id)
INSERT INTO daily_attendances (emp_id, date, in_time, out_time)
SELECT emp_id, date, MAX(in_time), MAX(out_time)
FROM temp
GROUP BY emp_id, date