这个查询有语法错误,原因是在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,以满足语法要求

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

原文地址: https://www.cveoy.top/t/topic/iZi8 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录