mysql - subconsultas - Contando filas de una subconsulta
subconsultas sql ejercicios resueltos (2)
¿Cómo podría contar filas de una consulta SELECT como un valor? Como
SELECT FUCNTIONIMLOOKINGFOR(SELECT * FROM anothertable) AS count FROM table;
De modo que ese recuento es un número entero de cuántas filas devuelve la subconsulta SELECT * FROM anothertable
.
EDITAR
SELECT p.PostPID, p.PostUID, p.PostText, p.PostTime, u.UserUID, u.UserName, u.UserImage, u.UserRep,
(
SELECT COUNT(f.FlagTime)
FROM Flags as f
JOIN Posts as p
ON p.PostPID = f.FlagPID
) as PostFlags
FROM Posts AS p
JOIN Users AS u
ON p.PostUID = u.UserUID
ORDER BY PostTime DESC
LIMIT 0, 30
Puedes decir
SELECT COUNT(*) FROM anothertable
que devolverá un valor numérico, que puede utilizar en otra consulta, como en la lista de selección de otra consulta, o como condición en otra consulta.
SELECT someVariable FROM table
WHERE (SELECT COUNT(*) FROM anotherTable) > 5
O
SELECT someVariable, (SELECT COUNT(*) FROM anotherTable) as count FROM table
SELECT ( SELECT COUNT(id) FROM aTable ) as count FROM table
Supongo que su ejemplo es una versión truncada de su consulta real, por lo que quizás debería publicar lo que está buscando para obtener una consulta, posiblemente, más óptima.
EDITAR
Trabajando directamente desde mi cerebro, algo como esto debería ser más óptimo.
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