Подсчет строк из подзапроса
Как подсчитать строки из запроса SELECT в качестве значения?
Например,
SELECT FUCNTIONIMLOOKINGFOR(SELECT * FROM anothertable) AS count FROM table;
Таким образом, count - это целое число из числа строк, возвращаемых подзапросом SELECT * FROM anothertable
.
ИЗМЕНИТЬ
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
Ответы
Ответ 1
SELECT ( SELECT COUNT(id) FROM aTable ) as count FROM table
Я предполагаю, что ваш пример представляет собой усеченную версию вашего фактического запроса, поэтому, возможно, вам следует опубликовать то, что вам нужно, чтобы получить, возможно, более оптимальный запрос.
ИЗМЕНИТЬ
Работая непосредственно из моего мозга, что-то вроде этого должно быть более оптимальным.
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
Ответ 2
Вы можете сказать
SELECT COUNT(*) FROM anothertable
который вернет числовое значение, которое вы можете использовать в другом запросе, например, в списке выбора другого запроса или в качестве условия в другом запросе.
SELECT someVariable FROM table
WHERE (SELECT COUNT(*) FROM anotherTable) > 5
ИЛИ
SELECT someVariable, (SELECT COUNT(*) FROM anotherTable) as count FROM table