MySQL:需要获取行数

时间:2011-03-18 11:12:04

标签: mysql sql sum

我正在尝试执行一个SQL查询,该查询也会从另一个表中吐出许多符合条件的行。

这是当前查询,插入sprintf:

  

选择a。* FROM websites AS a   在哪里website_id =%d

然后,我有一个查询来检索给定网站的唯一访问次数(来自访问表):

  

SELECT * FROM website_visits WHERE   website_id =%d GROUP BY   visitor_id

现在,有没有办法在第一个查询中插入该查询,以便我可以检索唯一访问次数,作为第一个查询结果的一部分?它必须是这样的:

  

SELECT a。*,(SELECT * FROM   website_visits AS b在哪里   b。website_id = a。website_id GROUP   BY visitor_id)AS unique_visits FROM   websites作为一个地方website_id =   %d

但是......至于执行结束,我很难过。您可以提供的任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:1)

要检索行计数,请在查询中添加SQL_CALC_FOUND_ROWS,例如:

SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name;

在此查询之后,您可以:

SELECT FOUND_ROWS();

检索行数。

(这会以便宜的方式检索计数;如果您需要将计数作为行集的一部分,则必须使用子查询,就像在您的问题中一样。)

答案 1 :(得分:1)

这为您提供了所有网站记录,并为每个网站记录了该网站的唯一visitor_id个。{/ p>

SELECT a.*, (
    SELECT COUNT(DISTINCT b.visitor_id)
    FROM website_visits AS b
    WHERE b.website_id = a.website_id) AS unique_visits
FROM websites AS a
WHERE website_id = %d