Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 对子查询中的行进行计数_Mysql_Sql_Subquery - Fatal编程技术网

Mysql 对子查询中的行进行计数

Mysql 对子查询中的行进行计数,mysql,sql,subquery,Mysql,Sql,Subquery,如何将SELECT查询中的行计数为值? 比如 因此,该计数是子查询从另一个表中选择*返回的行数的整数 编辑 我假设您的示例是实际查询的一个截断版本,所以您可能应该发布您想要的内容,以获得一个可能更优化的查询 编辑 直接从我的大脑工作,像这样的东西应该更为理想 SELECT p.PostPID, p.PostUID, p.PostText, p.PostTime, u.UserUID, u.UserName, u.UserImage, u.UserRep, COUNT(v.FlagTime) as

如何将SELECT查询中的行计数为值? 比如

因此,该计数是子查询从另一个表中选择*返回的行数的整数

编辑

我假设您的示例是实际查询的一个截断版本,所以您可能应该发布您想要的内容,以获得一个可能更优化的查询

编辑

直接从我的大脑工作,像这样的东西应该更为理想

SELECT p.PostPID, p.PostUID, p.PostText, p.PostTime, u.UserUID, u.UserName, u.UserImage, u.UserRep, COUNT(v.FlagTime) as postFlags
    FROM Flags as f 
    JOIN Posts as p ON p.PostPID = f.FlagPID
    JOIN Users AS u ON p.PostUID = u.UserUID
LIMIT 0, 30
GROUP BY p.PostPID
ORDER BY PostTime DESC
你可以说

SELECT COUNT(*) FROM anothertable
它将返回一个数值,您可以在另一个查询中使用该数值,例如在另一个查询的选择列表中,或者在另一个查询中用作条件

SELECT someVariable FROM table
WHERE (SELECT COUNT(*) FROM anotherTable) > 5


@Charlie-不确定是否出现错误,但在选择之前是否缺少逗号。。。作为PostFlags?@Charlie-我不确定v.FlagTime中的“v”是指什么,你没有任何标记为v的连接,f.FlagTime呢?@Charlie-一切都修复了?我更新了我的帖子。但是子查询似乎是在没有连接的情况下执行的。谢谢!第二个例子很有用,如果不是所有帖子都有标志,那么就排除那些没有标志的帖子。如果是这样的话,那么就从帖子中做左连接标志。。。
SELECT p.PostPID, p.PostUID, p.PostText, p.PostTime, u.UserUID, u.UserName, u.UserImage, u.UserRep, COUNT(v.FlagTime) as postFlags
    FROM Flags as f 
    JOIN Posts as p ON p.PostPID = f.FlagPID
    JOIN Users AS u ON p.PostUID = u.UserUID
LIMIT 0, 30
GROUP BY p.PostPID
ORDER BY PostTime DESC
SELECT COUNT(*) FROM anothertable
SELECT someVariable FROM table
WHERE (SELECT COUNT(*) FROM anotherTable) > 5
SELECT someVariable, (SELECT COUNT(*) FROM anotherTable) as count FROM table