嗨,我已经为当前正在执行的合并编写了导入脚本。我正在将一些数据从一个表移到另一个表,并更改某些外键的值,从而更改了脚本中的LEFT JOINs
。
当我运行脚本时,从表中获取的数据包含4,695,796行,并且在导入数据后,新表具有4,861,376(运行导入时为空),我也不知道为什么会有多余的行。那就是额外的150,000行。
这是我正在运行的脚本:
INSERT INTO `intelli_sense`.`wifi_daily_stats_venue_unique_device_uuids_per_hour` (day_epoch, day_of_week, hour, venue_id, device_uuid, first_seen, last_seen, is_repeat, is_authorised, has_authorised, age, gender, postcode, provider)
SELECT day_epoch, day_of_week, hour, (CASE WHEN intelli_sense_venue.id!=0 THEN intelli_sense_venue.id ELSE 0 END), UNHEX(MD5(CONCAT(device.mac_address, device.venue_id))), summary_table.first_seen, summary_table.last_seen, is_repeat, is_authorised, has_authorised, age, gender, postcode, provider
FROM wifi.daily_stats_venue_unique_device_uuids_per_hour AS summary_table
LEFT JOIN wifi.venue AS wifi_venue_1 ON wifi_venue_1.id = summary_table.venue_id
LEFT JOIN intelli_sense.venue AS intelli_sense_venue ON intelli_sense_venue.name = wifi_venue_1.name
LEFT JOIN device AS device ON summary_table.device_uuid = device.device_uuid;
我不确定是否是导致额外行的联接。我只想在更改venue_id
和device_uuid
我希望我的解释是有道理的,我没有详细说明为什么要进行合并以及何时需要更改值,因为我认为这不会帮助解决问题。我可能犯了一个简单的错误,但请先谢谢您。
** **编辑** **
我刚刚尝试运行此脚本:
INSERT INTO `intelli_sense`.`wifi_daily_stats_venue_unique_device_uuids_per_hour` (day_epoch, day_of_week, hour, venue_id, device_uuid, first_seen, last_seen, is_repeat, is_authorised, has_authorised, age, gender, postcode, provider)
SELECT day_epoch, day_of_week, hour, venue_id, summary_table.device_uuid, summary_table.first_seen, summary_table.last_seen, is_repeat, is_authorised, has_authorised, age, gender, postcode, provider
FROM wifi.daily_stats_venue_unique_device_uuids_per_hour AS summary_table
所以我删除了所有联接,但我仍然有150,00多行,这对我来说根本没有意义。