【问题标题】:mysql - embed count query within another querymysql - 在另一个查询中嵌入计数查询
【发布时间】: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;

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

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

谢谢:)

【问题讨论】:

    标签: sql mysql nested-queries


    【解决方案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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-25
        • 1970-01-01
        • 2012-12-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多