INSERT INTO rep_kw_osrcevents2 (sessid, eventdate, reventdataid, mdata2, sdata2, rdata2) SELECT distinct base.sessid AS sessid, base.eventdate AS eventdate, MAX(rev.eventdataid) AS reventdataid, MAX(mev.data2) AS mdata2, MAX(sev.data2) AS sdata2, MAX(rev.data2) AS rdata2 FROM temp_kw_ofirstevents AS base LEFT JOIN rep_kw_oreferevents AS rev force index (sessid) ON base.sessid=rev.sessid AND ABS(base.eventdate-rev.eventdate)<4 LEFT JOIN rep_kw_omarketingevents AS mev ON base.sessid=mev.sessid AND ABS(base.eventdate-mev.eventdate)<4 LEFT JOIN rep_kw_osubmcevents AS sev ON base.sessid=sev.sessid AND ABS(base.eventdate-sev.eventdate)<4 GROUP BY sessid,eventdate ORDER BY sessid,eventdate; +----+-------------+-------+------+---------------+--------+---------+---------------------+---------+---------------------------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+-------+------+---------------+--------+---------+---------------------+---------+---------------------------------+ | 1 | SIMPLE | base | ALL | NULL | NULL | NULL | NULL | 3975052 | Using temporary; Using filesort | | 1 | SIMPLE | rev | ref | sessid | sessid | 5 | reports.base.sessid | 8 | | | 1 | SIMPLE | mev | ref | sessid | sessid | 5 | reports.base.sessid | 4 | | | 1 | SIMPLE | sev | ref | sessid | sessid | 5 | reports.base.sessid | 3 | | +----+-------------+-------+------+---------------+--------+---------+---------------------+---------+---------------------------------+ 4 rows in set (0.00 sec)