有谁能告诉我为什么这么慢,请问如何纠正呢?即使使用"限制1"也需要15秒才能运行。在上面。即使没有子查询,仍然需要10秒。
SELECT
SP_GETCODECODE(t9mod) AS 'Mod',
p.rrnhs AS NHS,
CONCAT(p.idfnam, ' ', p.idnam) AS 'Name',
(SELECT
e.c1k
FROM
electrolytes e
WHERE
p.oid = e.fk_oid
ORDER BY e.c1date DESC
LIMIT 1) AS 'Potassium'
FROM
timeline t1
LEFT JOIN
person p ON t1.fk_oid = p.oid
WHERE
t1.oid = (SELECT
t2.oid
FROM
timeline t2
WHERE
t2.fk_oid = t1.fk_oid
ORDER BY t2.oid DESC
LIMIT 1)
AND t9mod IN (19301 , 19302,
19304,
19309,
19371,
5106,
5120,
140055,
140067)
AND p.isactive = - 1
LIMIT 1
这里的想法是从TIMELINE中提取所有记录,其中一个T9MOD代码作为WHERE中的顶部条目。与PERSON表中的患者姓名一起,然后子查询从患者中提取患者最新的钾。
我在研究和编译时已经超出了我的编码能力但却无法理解(作为新手)如何更快地完成它。
谢谢,
迈克