mysql - 在另一个查询中嵌入计数查询

Posted

技术标签:

【中文标题】mysql - 在另一个查询中嵌入计数查询【英文标题】:mysql - embed count query within another query 【发布时间】:2008-12-11 19:40:26 【问题描述】:

在 postgres 中我相当肯定你可以做这样的事情

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

本质上,在这个例子中,我想在同一个查询中返回一个作者列表以及每个作者写了多少本书。

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

谢谢:)

【问题讨论】:

【参考方案1】:

嗯,一方面,它将所有作者的笛卡尔积返回到所有书籍,而不管该作者是否写了那本书。

以下是我编写查询以获得您想要的结果的方式:

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,就像循环之于应用程序编程语言一样。 IE。这是您需要了解的基本编程结构。

【讨论】:

【参考方案2】:

如何使用连接:

SELECT authors.stage_name, count(*) 
FROM authors INNER JOIN books on books.author_id = authors.id
GROUP BY authors.stage_name

【讨论】:

以上是关于mysql - 在另一个查询中嵌入计数查询的主要内容,如果未能解决你的问题,请参考以下文章

MySQL数据库进阶篇

在另一个查询 MySQL 中使用一个查询的 SUM

使用聚合查询获取具有总交易计数和交易详细信息的用户列表作为嵌入文档

mysql 查询一个表中没有存在在另一个表的数据

使用 PHP 和 HTML 选择选项在另一个 mysql 查询中使用数组数据

MySQL - 在一个查询中按两列计数[重复]