我有两张桌子符号和rpm。
表详细信息: rpm: rpm中的条目导出符号和消费。
符号:符号表是所有符号(导出和消费)的集合。
表描述:
符号:符号表有id、name、rpm_id (映射到rpm表的id )、标志来显示它是导出还是消费。标志= 1;消费标志= 0;导出
rpm: rpm表有id,name。
更多上下文:由rpm条目导出的符号被其他rpm表条目消耗了很多次。因此,使用不同的id,rpm_id多次在符号表中登记符号。
问题陈述:列表按给定的rpm导出符号(给定其id;例如35),以及每个符号被其他rpm条目消耗的时间。
输出布局:
symbol.name \x计数(此符号被消耗的时间)
尝试解决方案:
选择symbol.name,计数(不同的symbol.rpm_id) 从符号,rpm 其中symbol.flag =0 && symbol.rpm_id = 35 Symbol.name组;
但是我在计数栏中得到了每个符号的“1”,这是错误的。
所涉查询的语义:
首先,查询应该获得由给定的rpm.id导出的所有符号(rpm.id = 35),然后对于结果集中的每个symbol.id,它应该找到被消耗的次数,即它的计数,并在该符号前面打印计数。
请提出一些方法/查询以获得结果。
谢谢。
发布于 2012-11-06 10:44:27
试试这个解决方案
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是供消费的
https://stackoverflow.com/questions/13248918
复制相似问题