我有一个在多个表上使用内部联接的 select 语句,并且我想从一个特定表获取 COUNT()
,但是我当前的语句抛出错误:
Syntax error: unexpected 'COUNT' (count)
有帮助。我知道。一定会喜欢 MySQL 详细而深入的错误消息。
这是我的选择语句:
SELECT SE.SEId, SE.ParentME, SE.ParentSE, SE.Name, SE.Status, SE.Description,
UDC.UDCId, UDC.Code, UDC.Description,
TRM.COUNT(*)
FROM SubEquipment SE
INNER JOIN UserDefinedCode UDC ON UDC.ETId = SE.EquipmentType
INNER JOIN Terminal TRM ON TRM.SEId = SE.SEId
GROUP BY TRM.SEId
WHERE ParentME = @MEId;
我做错了什么?这可能吗?
最佳答案
您想要执行以下操作:
SELECT SE.SEId, SE.ParentME, SE.ParentSE, SE.Name, SE.Status, SE.Description,
UDC.UDCId, UDC.Code, UDC.Description,
COUNT(DISTINCT TRM.SEID)
FROM SubEquipment SE
INNER JOIN UserDefinedCode UDC ON UDC.ETId = SE.EquipmentType
INNER JOIN Terminal TRM ON TRM.SEId = SE.SEId
WHERE ParentME = @MEId
GROUP BY 1,2,3,4,5,6,7,8,9
由于计数是一个聚合,因此您的单个度量必须进行分组。另外,您看到的错误是因为 COUNT 不是 TRM 中的列。这就是它认为您所要求的。
关于mysql - 我可以在多个表中使用 COUNT(*) 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32107542/