我有两个表符号和rpm。
表格详情 转: rpm中的条目导出符号并使用。
符号: 符号表是所有符号的集合(导出和使用)。
表格说明:
符号: 符号表具有id,name,rpm_id(映射到rpm表的id),用于显示是否导出或使用的标志。 flag = 1;消费 flag = 0;导出
转: rpm表有id,name。
更多背景信息 由rpm条目导出的符号被其他rpm表条目多次使用。 因此,符号表在符号表中多次使用不同的id,rpm_id。
进行登记问题陈述: 按给定的rpm列出导出的符号(给定其id;比如35)以及其他rpm条目消耗每个符号的时间。
输出布局:
symbol.name | count(消耗此符号的时间)|
尝试过的解决方案:
SELECT symbol.name,count(distinct symbol.rpm_id)
FROM符号,rpm
WHERE symbol.flag = 0&& symbol.rpm_id = 35
GROUP BY symbol.name;
但是我在每个符号的count列中得到'1',这是错误的。
有问题的查询语义:
第一个查询应该获得由给定rpm.id(rpm.id = 35)导出的所有符号, 然后对于结果集中的每个结果symbol.id,它应该找到它被消耗的次数,即它的计数并在该符号前打印计数。
答案 0 :(得分:0)
试试这个解决方案
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用于消费