Sho*_*hoe 17 mysql sql subquery
我怎样才能将SELECT查询中的行计为值?如
SELECT FUCNTIONIMLOOKINGFOR(SELECT * FROM anothertable) AS count FROM table;
Run Code Online (Sandbox Code Playgroud)
因此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
Run Code Online (Sandbox Code Playgroud)
Kev*_*eno 19
SELECT ( SELECT COUNT(id) FROM aTable ) as count FROM table
Run Code Online (Sandbox Code Playgroud)
我假设你的例子是你的实际查询的截断版本,所以也许你应该发布你想要的,可能是更优化的查询.
编辑
直接从我的大脑工作,这样的事情应该更加优化.
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
Run Code Online (Sandbox Code Playgroud)
你可以说
SELECT COUNT(*) FROM anothertable
Run Code Online (Sandbox Code Playgroud)
它将返回一个数值,您可以在另一个查询中使用该值,例如在另一个查询的选择列表中,或作为另一个查询中的条件.
SELECT someVariable FROM table
WHERE (SELECT COUNT(*) FROM anotherTable) > 5
Run Code Online (Sandbox Code Playgroud)
要么
SELECT someVariable, (SELECT COUNT(*) FROM anotherTable) as count FROM table
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
58325 次 |
最近记录: |