[英]SQL Query count row of same id in a different table
已经检查了其他答案,但不幸的是没有帮助我。 因此,我希望从不同的表格中计算出多少个相同的ID。 这是我的桌子的样子
左侧的第一个表格是“资源”,第二个表格是“ equipment_entity”。 所以我想计算一下与equipment_entity.id
加入时有多少resource_class_id
。 到目前为止,这是我尝试过的方法,但是没有用。 任何帮助都可以。 链接相同的问题或任何帮助。 谢谢你!
SELECT e.*, r.equipment_class_id, r.resource_type FROM equipment_entity as e LEFT JOIN resources as r ON e.id = r.equipment_class_id COUNT(DISTINCT r.equipment_class_id) where r.resource_type = 'equipment'
而且,我有这个错误
1064-您的SQL语法有误; 检查与您的MariaDB服务器版本相对应的手册以获取正确的语法,以在第1行的“ COUNT(DISTINCT r.equipment_class_id)”附近使用,其中r.resource_type ='equipment'LIMIT 0'
尝试以下查询。 这将为您提供equipment_entity表中的所有行以及资源表中每个设备的行数。
SELECT e.*, count(*) AS count FROM `equipment_entity` AS e left join `resources` AS r ON e.id = r.equipment_class_id GROUP BY e.id
有两种选择。 您已经确定要知道r.resource_type ='equipment'的计数,那么第一个查询将为您服务。
SELECT COUNT(DISTINCT r.equipment_class_id)
FROM equipment_entity AS e
LEFT JOIN resources AS r ON e.id = r.equipment_class_id
WHERE r.resource_type = 'equipment';
但是,如果您想一次查看所有resource_type的计数,则可以按以下方式使用GROUP BY获得所需的结果。
SELECT r.equipment_class_id,
COUNT(DISTINCT r.equipment_class_id)
FROM equipment_entity AS e
LEFT JOIN resources AS r ON e.id = r.equipment_class_id
GROUP BY r.equipment_class_id;
用这个
SELECT r.equipment_class_id, r.resource_type, count(r.equipment_class_id) count
FROM equipment_entity as e LEFT JOIN resources as r
ON e.id = r.equipment_class_id where r.resource_type = 'equipment' GROUP BY equipment_class_id
所以我想算一下与equipment_entity.id一起加入时有多少resource_class_id
我不太明白这意味着什么。 以下是两种解释。
根据您的数据模型,表resources
似乎至少具有两列id
和resource_class
。 表equipment_entity
似乎具有resource_class_id
。 我已调整此答案以反映这些名称。
如果要计算具有特定资源类型的设备的数量,则只需使用JOIN
和COUNT
():
SELECT COUNT(*)
FROM equipment_entity e JOIN
resources r
ON r.id = e.resource_class_id
WHERE r.resource_class = 'equipment';
不需要COUNT(DISTINCT)
或LEFT JOIN
。
如果要计算所有资源类,则:
SELECT r.resource_class, COUNT(e.id)
FROM resources r JOIN
equipment_entity e
ON r.id = e.resource_class_id
GROUP BY r.resource_class;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.