不知道还有什么办法可以解决这个问题。我有一个表,它有一个开始和一个停止列,我想返回它通过开始和停止连接的结果,我想清楚地区分两者。现在这两个查询分别快速运行:
SELECT
UNIX_TIMESTAMP(CONVERT_TZ(start_dev, '+00:00', GetCarrierTimezone(a0.carrier_id))) AS alertStart,
NULL AS alertStop,
c0.name AS carrier_name,
carrier_image,
l0.Latitude,
l0.Longitude
FROM
carriers AS c0
INNER JOIN start_stop AS a0 ON a0.carrier_id = c0.id
INNER JOIN pcoarg AS l0 ON a0.startLogId = l0.id
WHERE
FIND_IN_SET(a0.carrier_id, '89467,1,64578,222625,45013') > 0
AND
start_dev > '2013-03-11 11:46:48'
AND
start_dev = (SELECT MIN(start_dev) FROM start_stop AS a1 WHERE a0.carrier_id = a1.carrier_id AND DATE(a1.start_dev) = DATE(a0.start_dev))
AND IsNotificationInSchedule(22, start_dev) > 0
Run Code Online (Sandbox Code Playgroud)
所以这个需要 0.063。但是,如果我将它组合在一个 UNION 中(它是 UNION ALL 还是 DISTINCT 或 WHATEVER …
mysql ×1