-1
我有四個表在我的數據庫找到一個的最後一條記錄到許多關係上的MySQL與JOIN
督察:ID,名稱,類型,狀態,電子郵件
州:ID,姓名,父
病人:ID,姓名,年齡,national_code
Patient_Log:ID,patient_id,inspector_id,STATE_ID,呼吸,body_movement,face_movement,插科打諢,咳嗽,角膜,瞳孔,doll_eye,鎮靜,狀態更新
我現在用的這個查詢:
SELECT patient.id, patient.name, patient.age, patient.national_code,
pLog.id AS pLog_id, pLog.inspector_id, pLog.state_id, pLog.breathing, pLog.sedation,
inspecor.name AS ins_name, inspecor.type AS ins_type, inspecor.status AS ins_status
state.name AS state_name
FROM patient
JOIN patient_log AS pLog ON pLog.patient_id = patient.id AND pLog.id =
(SELECT MAX(patient_log.id) FROM patient_log WHERE patient_log.patient_id = patient.id)
JOIN inspector ON inspector.id = pLog.inspector_id
JOIN state ON state.id = pLog.state_id
WHERE pLog.status = 1
ORDER BY pLog.update DESC
LIMIT 30
這個查詢它的工作!我的結果是真的! 但現在我的病人表有1500條記錄,而patient_log表有8000條記錄,這個查詢我在16秒內得到結果!!!!!!
如果我要從我的查詢本節我得到的結果是0.02秒但我的結果不正確的,返回從patient_log第一條記錄:
AND pLog.id = (SELECT MAX(patient_log.id) FROM patient_log WHERE
patient_log.patient_id = patient.id)
如何優化我的查詢,以獲得正確的結果呢?
指標加入複合指數始終是一個大面積的樣子。你也有一個相關的子查詢。 'inspector_id' ...'state_id' ,,,'pLog.update' – Drew
此查詢不起作用。請不要提供不正確的信息。這是浪費時間。 – Strawberry
爲什麼不工作?我目前使用它,但效率很低。所以我想優化它...... – mhrezaei