SELECT bid AS patient_id bbracelet_no bpatient_name bgender bage_unit bage ntdinjury_level bwounded_type aupdater AS creator aupdate_date AS create_date abatch FROM nr_first_check
这个查询有语法错误,原因是在GROUP BY子句中使用了别名a.batch。在GROUP BY子句中,只能使用选择列表中的列或表达式。要解决这个问题,需要将别名替换为列名或表达式。以下是修改后的查询:
SELECT
b.id AS patient_id, b.bracelet_no, b.patient_name, b.gender, b.age_unit, b.age, ntd.injury_level, b.wounded_type, a.updater AS creator, a.update_date AS create_date, a.batch
FROM
nr_first_check_registration b
INNER JOIN
(
SELECT
patient_id, SUBSTRING_INDEX(GROUP_CONCAT(updater ORDER BY update_date DESC), ',', 1) AS updater, MAX(update_date) AS update_date, batch
FROM
nr_decontamination
WHERE
deleted = 0
AND task_id = 1686624740401336322
AND status = 1
GROUP BY
patient_id, batch
) a
ON
b.id = a.patient_id
LEFT JOIN nr_triage_data ntd ON ntd.patient_id = b.id
WHERE
b.deleted = 0
AND b.task_id = 1686624740401336322
AND ntd.deleted = 0
AND b.bracelet_no = 987987
ORDER BY
a.update_date DESC;
修改后的查询将GROUP BY子句中的a.batch替换为patient_id和batch,以满足语法要求
原文地址: https://www.cveoy.top/t/topic/iZi8 著作权归作者所有。请勿转载和采集!