计算连续oracle的位置

时间:2016-06-12 15:20:46

标签: sql oracle select count

我正在制作书店数据库,在“作者”表格中,我有专栏,我想在“书籍”表中统计作者所写的书籍。表“Books”具有外键“id_author”。我不知道该怎么做,就像

SELECT COUNT(*) FROM Books WHERE id_author = "id of chosen author"

用代码代替"id of chosen author"写什么?

如何将它放在表“作者”中?

3 个答案:

答案 0 :(得分:1)

您可以加入authors表并按其列查询(例如,名字和姓氏):

SELECT COUNT(*)
FROM   books b
JOIN   author a ON b.id_author = a.id
WHERE  a.firstname = 'John' AND a.lastname = 'Doe'

答案 1 :(得分:0)

根据您的应用程序,应用程序可能已具有作者ID。这意味着你可以做一个

SELECT COUNT(*) FROM Books WHERE id_author = "id of author provided by application"

虽然与Mureinik的答案相比,差异可能不大,但这可以提高您在大型数据库上的表现,因为您不必在作者和书籍表之间进行连接。

答案 2 :(得分:0)

作者的书籍数量:

select a.author, count(1)
from author a
join books b 
  on a.id = b.id_author
group by a.author