Подсчет строк из подзапроса
как я могу подсчитать строки из запроса 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
2 ответов
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
вы можете сказать
SELECT COUNT(*) FROM anothertable
который возвращает числовое значение, которое можно использовать в другом запросе, например, в списке выбора другого запроса, или как условие другого запроса.
SELECT someVariable FROM table
WHERE (SELECT COUNT(*) FROM anotherTable) > 5
или
SELECT someVariable, (SELECT COUNT(*) FROM anotherTable) as count FROM table