在Postgres的我相当肯定,你可以做这样的事情。

SELECT
  authors.stage_name, 
  count(select id from books where books.author_id  = authors.id) 
FROM
  authors,
  books;

从本质上讲,在这个例子中,我想回作者和多少书每写列表....在相同的查询。

这是可能的?我怀疑这种方法是相当幼稚..

感谢:)

有帮助吗?

解决方案

那么,对于一两件事,它返回所有作者的所有书籍,一个笛卡尔积,无论是作者是否写了这本书。

下面就是我会写一个查询来获取你说你想要的结果:

SELECT a.stage_name, COUNT(b.id)
FROM authors a
  LEFT OUTER JOIN books b ON (a.id = b.author_id)
GROUP BY a.id;

您需要学习如何写,如果你使用SQL连接查询。连接是到SQL循环是应用程序的编程语言是什么。即它是你需要知道一个基本的编程结构。

其他提示

如何使用连接:

SELECT authors.stage_name, count(*) 
FROM authors INNER JOIN books on books.author_id = authors.id
GROUP BY authors.stage_name
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top