2016-06-12 58 views
1

我正在制作书店数据库,并在表格“作者”中列出了我想列出作者在表格“书籍”中编写的书籍的列。表“Books”具有外键“id_author”。我不知道该怎么做,它就像连续计数职位oracle

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

在代码中用什么来代替"id of chosen author"

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

+1

你只需要更新它,如果作者发布的一本新书。您不应该在实际数据库中真正存储这种性质的动态数据,只需在需要时提取它。 – CHill60

回答

1

您可以加入在authors表和查询其列(例如,第一个和最后一个名称):

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

取决于你有应用程序,该应用程序可能已经有作者id。这意味着,你可以只是做一个

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

虽然相对于Mureinik的答案,这样可以加强对大型数据库的性能,你没有做的作者和书籍表之间的连接的差异可能并不大。

0

册数由作者:

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