gpt4 book ai didi

mysql - 计算连接排列的行数

转载 作者:行者123 更新时间:2023-11-29 12:31:12 25 4
gpt4 key购买 nike

我有两个表 - team_instance 和player_instance,其中player_instance 引用团队实例。我还有其他表 - 称它们为 X、Y、Z - 引用player_instance。

我想要做的是将 team_instance 和player_instance 与每个表 X、Y、Z 结合起来,并计算每个表返回的行数。

到目前为止我有这个:

SELECT team_instance.id, COUNT(team_instance.id) * 3 AS dropkick_points
FROM team_instance
INNER JOIN player_instance ON team_instance.id = player_instance.team_instance_id
INNER JOIN dropkicks ON player_instance.id = dropkicks.kicker_id
WHERE dropkicks.success = true

表 dropkicks 是 X,我使用 COUNT 来累加返回的总行数(条件是 dropkicks 'success' 内的值为 true)。

我现在需要做的是对其他表 Y、Z(不会乘以 3,而是不同的值)进行此操作,然后将所有这些值添加到单个列中。

希望这是有道理的,并提前致谢。

最佳答案

由于 INNER JOIN 是在 SELECT 之前完成的,因此您将无法知道每个表中已连接的行数。所以你能做的就是COUNT每一项:

SELECT ( SELECT COUNT(X.id) * 1 FROM X ) 
+ ( SELECT COUNT(Y.id) * 2 FROM Y )
+ ( SELECT COUNT(Z.id) * 3 FROM Z )
AS dropkick_points
...

这将返回(X 中的 # 行 * 1) + (Y 中的 # 行 * 2) + (Z 中的 # 行 * 3) 的总和

注意这是假设id是主键并且在表中是唯一的。如果您不确定主键或其复合键,那么您可以将 COUNT(X.id) 替换为 COUNT(*),这确保您将获得所有行,但 * 并未优化。

关于mysql - 计算连接排列的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27472341/

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