30 lines
1.1 KiB
SQL
30 lines
1.1 KiB
SQL
-- 更新pro_mobile_attendance_data表的cfg_id,根据project_id从attendance_cfg中找到默认配置ID
|
||
UPDATE pro_mobile_attendance_data pmad
|
||
INNER JOIN (
|
||
SELECT ac.project_id, ac.id AS cfg_id
|
||
FROM attendance_cfg ac
|
||
WHERE ac.is_default = 1 AND ac.enabled = 1
|
||
) ac ON pmad.project_id = ac.project_id
|
||
SET pmad.cfg_id = ac.cfg_id
|
||
WHERE pmad.att_device = 'device' AND pmad.cfg_id = 0;
|
||
|
||
-- 测试查询:查看更新效果
|
||
SELECT pmad.id, pmad.project_id, pmad.cfg_id, ac.id AS new_cfg_id
|
||
FROM pro_mobile_attendance_data pmad
|
||
LEFT JOIN (
|
||
SELECT ac.project_id, ac.id
|
||
FROM attendance_cfg ac
|
||
WHERE ac.is_default = 1 AND ac.enabled = 1
|
||
) ac ON pmad.project_id = ac.project_id
|
||
WHERE pmad.att_device = 'device' AND pmad.cfg_id = 0;
|
||
|
||
-- 分批更新(可选,适用于大数据量)
|
||
UPDATE pro_mobile_attendance_data pmad
|
||
INNER JOIN (
|
||
SELECT ac.project_id, ac.id AS cfg_id
|
||
FROM attendance_cfg ac
|
||
WHERE ac.is_default = 1 AND ac.enabled = 1
|
||
) ac ON pmad.project_id = ac.project_id
|
||
SET pmad.cfg_id = ac.cfg_id
|
||
WHERE pmad.att_device = 'device' AND pmad.cfg_id = 0
|
||
LIMIT 1000; |