说,我这里有一张桌子。该表具有以下结构(考试日期、学生姓名和获得的分数)
D NAME MARKS
2001-01-01 a 1
2001-01-04 a 4
2001-01-06 a 3
2001-01-08 a 3
2001-01-01 b 1
2001-01-10 b 15
2001-01-01 c 1
2001-01-06 c 2
2001-01-08 c 5
2001-01-10 c 7
我想更新表格,给那些没有每个测试条目的学生打 0 分。更新表应如下所示
D NAME MARKS
2001-01-01 a 1
2001-01-02 a 0
2001-01-04 a 4
2001-01-06 a 3
2001-01-08 a 3
2001-01-02 a 0
2001-01-01 b 1
2001-01-02 b 0
2001-01-04 b 0
2001-01-06 b 0
2001-01-08 b 0
2001-01-10 b 15
2001-01-01 c 1
2001-01-02 c 2
2001-01-04 c 0
2001-01-06 c 0
2001-01-08 c 5
2001-01-10 c 7
到目前为止,我能弄清楚的唯一解决方案(非常非常慢的查询)是:
SELECT DISTINCT(D) FROM tableA;
SELECT DISTINCT(NAME) FROM tableA;
使用 PHP,在嵌套循环中进行 sql 查询
INSERT IGNORE (D,NAME,MARKS)($D,$NAME,0);
但是,整个代码需要太多时间(以分钟计),因为有超过 50k 行。
有更好的建议吗?