首页 > 解决方案 > 列出每本书的副本数

问题描述

对于学校项目,我应该对此库模型进行查询。

到目前为止我做得很好,但现在我被困在这个问题上:“列出每本书的副本数量”。

以下是已完成但未按应有的工作:

SELECT liv_titulo, ( 
    SELECT count(exe_cod)
    FROM exemplar
    GROUP BY liv_cod
    ORDER BY COUNT(exe_cod) desc) Quantidade
FROM livro INNER JOIN exemplar USING (liv_cod);

标签: sqloraclejoinselectgroup-by

解决方案


我认为您想要使用的技术是相关子查询

  • 您在子查询中需要一个WHERE子句,因此它只考虑liv_code外部查询中当前行的

  • 子查询中不需要GROUP BY子句;它应该返回一个标量值(只有一行和一列,其中包含来自 table 的匹配行数examplar

  • join外部查询中不需要 a

代码:

SELECT 
    liv_titulo, 
    ( 
        SELECT count(*)
        FROM exemplar e
        WHERE e.liv_cod = l.liv_cod  -- correlation
    ) Quantidade
FROM livro l;

推荐阅读