INSERT INTO ... SELECT ...产生有缺陷的表,其中CREATE TABLE ... SELECT

时间:2019-03-02 22:25:05

标签: mysql insert-into

我正在处理大量GTFS数据,并根据现有数据创建一个附加表。为此,我使用以下查询。

INSERT INTO connections
(SELECT
    stop_timesD.departure_time,
    stop_timesD.stop_sequence AS stop_sequence_departure,
    stop_timesD.stop_id AS stop_id_departure,
    trips.trip_id,
    trips.direction_id,
    stop_timesA.arrival_time, 
    stop_timesA.stop_sequence AS stop_sequence_arrival, 
    stop_timesA.stop_id AS stop_id_arrival 
FROM trips 
INNER JOIN stop_times AS stop_timesD ON trips.trip_id = stop_timesD.trip_id 
INNER JOIN stop_times AS stop_timesA ON trips.trip_id = stop_timesA.trip_id 
INNER JOIN calendar_dates ON trips.service_id = calendar_dates.service_id 
WHERE calendar_dates.date = '20190302' AND stop_timesD.stop_sequence < stop_timesA.stop_sequence); 

现在,这将产生我正确需要的数据集。但是,由于每个查询(即SELECT * FROM connections;)都不会返回任何数据,因此插入该表的表似乎不可查询。此外,服务器在查询完成后仍会继续消耗大量CPU资源,并会为“免费数据”产生很大的价值(我怀疑它正在清理或编制索引)。

使用修改后的查询来创建新表(CREATE TABLE connections SELECT ...)确实会产生所需的结果,即使表布局没有差异。

0 个答案:

没有答案