我有两个表 symbol 和 rpm。
表格详细信息: 转速: rpm 中的条目导出符号并使用。
符号: 符号表是所有符号(导出和消费)的集合。
表格说明:
符号: 符号表有 id、名称、rpm_id(映射到 rpm 表的 id)、标志以显示它是导出还是使用。 标志 = 1;消费 标志 = 0;导出
转速: rpm 表有 id、name。
更多上下文: rpm 条目导出的符号会被其他 rpm 表条目多次使用。 因此,一个符号以不同的 id,rpm_id 被多次登记在符号表中。
问题陈述: 按给定的 rpm(给定其 id;例如 35)和每个符号被其他 rpm 条目消耗的时间列出导出的符号。
输出布局:
symbol.name | count(number of time this symbol is consumed)|
尝试过的解决方案:
SELECT symbol.name, count(distinct symbol.rpm_id)
FROM symbol, rpm
WHERE symbol.flag = 0 && symbol.rpm_id = 35
GROUP BY symbol.name;
但我在每个符号的计数列中得到“1”,这是错误的。
相关查询的语义:
第一个查询应该获取给定 rpm.id (rpm.id = 35) 导出的所有符号, 然后对于结果集中的每个结果 symbol.id,它应该找到它被消耗的次数,即它的计数,并在该符号前面打印计数。
请建议一些方法/查询以获得结果。
谢谢。
最佳答案
试试这个解决方案
select
rpm.id ,
rpm.rpm ,
count(symbols.id)
from rpm
left join symbols on symbols.rpm_id = rpm.id
where symbols.flag = 1
group by rpm.id
1 用于消费
关于mysql - 获取项目计数列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13248918/