Подтвердить что ты не робот

Подсчет строк из подзапроса

Как подсчитать строки из запроса 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
4b9b3361

Ответ 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