gpt4 book ai didi

mysql - 如何在没有子选择的情况下限制从 LEFT JOIN 返回的结果数?

转载 作者:行者123 更新时间:2023-11-29 06:57:30 27 4
gpt4 key购买 nike

我有以下查询,但它从 profile_photos 表返回多个条目。是否可以从个人资料照片表中返回一个随机条目?如果不是随机的,是否可以将结果数限制为 1?

这是我当前的查询:

$sql = "SELECT * FROM login_users " .
"LEFT JOIN profile_photos ON profile_photos.user_id = login_users.user_id " .
"LEFT JOIN profiles ON profiles.user_id = login_users.user_id " .
"WHERE login_users.restricted <> 1 " .
"ORDER BY login_users.birthdate DESC " .
"LIMIT 0, 20";

最佳答案

这是一种方法。查找随机照片,然后加入附加信息:

SELECT *
FROM (select lu.*,
(select photo_id
from profile_photos
where lu.user_id = profile_photos.user_id
order by RAND()
limit 1
) as photo_id
from login_users lu
) lu LEFT JOIN
profile_photos pp
ON pp.photo_id = lu.photo_id LEFT JOIN
profiles p
ON p.user_id = lu.user_id
WHERE lu.restricted <> 1
ORDER BY lu.birthdate DESC
LIMIT 0, 20

这里假设 photo_id 是 profile_photos 的主键。

关于mysql - 如何在没有子选择的情况下限制从 LEFT JOIN 返回的结果数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11867172/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com