gpt4 book ai didi

mysql - 如何将子查询结果的计数作为mysql中的列返回

转载 作者:行者123 更新时间:2023-11-29 14:43:56 24 4
gpt4 key购买 nike

我有一个名为 users 的表,每个用户都有一个名为 user_id 的主键。

我有另一个名为“ friend ”的表,它将用户与其他用户作为 friend 链接起来。

这个 friend 表有两列 user_id 和friend_id。 user_id 列始终是两个 user_id 中较小的一个,以防止重复。

我想做一个查询来获取用户表中的所有字段,同时返回一个用户与另一个用户有多少个共同 friend ,作为另一个名为mutual_friends_count的列中的计数。

所以基本上,如果我想知道每个用户有多少个与 user_id 5 相同的共同 friend ,查询将从用户表中选择所有内容,并为每个用户执行子查询来查找共同 friend 并将计数返回为mutual_friends_count

最佳答案

它并不漂亮,但它确实有效..

SELECT `u`.`user_id`, `f`.`friend_id`, `m`.`mutualFriends`
FROM `users` as `u`, `friends` as `f`
JOIN (
SELECT COUNT(*) as `mutualFriends`, `users`.`user_id`
FROM `users`, `friends`
WHERE `friends`.`user_id` = `users`.`user_id`
GROUP BY `users`.`user_id`
) as `m`
ON `m`.`user_id` = `f`.`friend_id`
WHERE `f`.`user_id` = `u`.`user_id`
AND `u`.`user_id` = 5;

关于mysql - 如何将子查询结果的计数作为mysql中的列返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7389135/

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