web-dev-qa-db-ja.com

サブクエリからの行のカウント

SELECTクエリの行を値としてどのようにカウントできますか?といった

SELECT FUCNTIONIMLOOKINGFOR(SELECT * FROM anothertable) AS count FROM table;

したがって、その数は、サブクエリ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
17
Shoe
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
19
Kevin Peno

あなたは言うことができます

SELECT COUNT(*) FROM anothertable

これは数値を返すため、別のクエリの選択リストなどの別のクエリで、または別のクエリの条件として使用できます。

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

OR

SELECT someVariable, (SELECT COUNT(*) FROM anotherTable) as count FROM table
7
Brett