我有一张三张桌子。主表是旅程数据,下一个表是警报表。journeydata 的主键是 journeydataID,它可以作为警报表中的键使用。接下来在警报表中有一个 fenceID,它是另一个表 fence 表的主键。下面我尝试运行一个子查询示例。我想要做的是将特定 journeydataID 的所有警报(如果它存在于单个字符串中)连接起来。但我不断收到错误 #1054 - “on 子句”中的未知列“alarmgroup.journeydataID”。接下来我要展示的任务是一个具有围栏名称值的警报。例如,如果有一个带有 fenceName 的 alarmName 的相关值显示为 alarmName(fenceName)。
SELECT journeydata.dateTime,
alarmDetails
FROM
journeydata
LEFT JOIN
( SELECT GROUP_CONCAT(alarmType.alarmName) AS alarmDetails
FROM alarm
JOIN alarmType
ON alarm.alarmTypeID = alarmType.alarmTypeID
LEFT JOIN fence
ON alarm.fenceID=fence.fenceID
WHERE alarm.associateID=6
GROUP BY alarm.journeydataID
) AS alarmgroup
ON journeydata.journeydataID=alarmgroup.journeydataID
WHERe journeydata.associateID=6
您的派生表缺少它正在寻找的额外字段试试这个:
可能还有更多问题需要修复,但我需要一点时间来查看您提供的查询和信息。现在试试这个。
编辑:根据要求 添加了(未经测试的)不同的分组和格式
alarmDetails
。