我正在尝试执行一个 SQL 查询,结果还从另一个表中吐出许多符合条件的行。
这是插入到 sprintf 中的当前查询:
SELECT a.* FROM
websites
AS a WHEREwebsite_id
= %d
然后,我有一个查询来检索给定网站的唯一访问次数(从访问表中):
SELECT * FROM
website_visits
WHEREwebsite_id
= %d GROUP BYvisitor_id
现在,有什么方法可以将该查询插入到第一个查询中,以便我可以检索唯一访问次数,作为第一个查询结果的一部分?它必须是这样的:
SELECT a.*, (SELECT * FROM
website_visits
AS b WHERE b.website_id
= a.website_id
GROUP BYvisitor_id
) AS unique_visits FROMwebsites
AS a WHEREwebsite_id
= %d
但是...至于执行结束,我很难过。感谢您提供的任何帮助!
最佳答案
要检索行数,请添加 SQL_CALC_FOUND_ROWS查询,例如:
SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name;
在这个查询之后,你可以:
SELECT FOUND_ROWS();
检索行数。
(这以一种廉价的方式检索计数;如果您需要将计数作为行集的一部分,则必须使用子查询,就像在您的问题中一样。)
关于MySQL:需要获取行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5351120/