mysql - 我可以在多个表中使用 COUNT(*) 吗?

标签 mysql

我有一个在多个表上使用内部联接的 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/

相关文章:

php - 用于选择最大元素的 MySQL 查询

PHP echo 禁用我的按钮?

sql - 将 MySQL 迁移到具有不同结构的表

php - laravel toSql 不返回输出

php - 检查PHP是否已经编译--with-mysql

php - 网址重定向的用户名

mysql - sql - 选择所有值 id 并计算它们在上个月内出现的次数

php - 关联数组中的单个 mysql 字段

php - postman 发布请求返回 null

php - Mysql中的 block 时区转换: compare the orginal time or date value(which the user gave) to database values