[英]Does MySQL Subquery consider Limit from Parentquery?
MySQL 是否限制內查詢:
(SELECT followId FROM followings WHERE followerId = '$userId')
來自“ParentQuery”的限制?
SELECT id, fullname FROM users
WHERE id IN
(
SELECT followId FROM followings
WHERE followerId = '$userId'
)
ORDER BY id DESC LIMIT 0, 20 <--- is normally Pagination with offset and limi
如果沒有,我該怎么辦,不是所有的追隨者 id 都被獲取? 我覺得這個查詢對性能非常不利。
SELECT u.id, u.fullname
FROM ( SELECT DISTINCT followId
FROM followings
WHERE followerId = '$userId'
ORDER BY followId DESC
LIMIT 0, 20
) AS f
JOIN users AS u ON f.followId = u.id
ORDER BY u.id DESC -- yes, repeated
-- unnecessary here: LIMIT 0, 20
和
followers: INDEX(followerId, followId)
請注意這是如何以$userId
開頭的。
這個解決方案對我有用。
SELECT users.id,
users.fullname,
users.username,
users.profileimagex1,
users.profileimagex2,
users.isverified
FROM users
INNER JOIN followings
ON followings.followerid = users.id
WHERE followings.followid = '$userId'
AND followings.accepted = 1
ORDER BY followings.id DESC LIMIT 0, 20
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.