gpt4 book ai didi

mysql - mysql中的复杂连接查询

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

大家好,

我真的需要你的帮助。我必须获得以下所有用户的列表(不同): - 在比赛中进行实时签到( checkins.ctype = 'live' ) - 他们最喜欢的球队(参见 fanusers_teams ) - 以 3 或以上净胜球优势获胜。

最喜欢的球队可能是 info_matches.team_id1 或 info_matches.team_id2 甚至两者。

这是所涉及表格的一个小设计:

design

我尝试过的方法,有效率为 80%(所以它不会:( ),因为它会返回一些正确的用户(他们最喜欢的球队有 3 个以上进球差异),但也会返回没有最喜欢的用户.球队处于这种情况。我认为他们被返回是因为他们对一场比赛进行了实时签到,其中一支球队或另一支球队以 3 个以上进球的差距获胜。

这是我的查询:

SELECT DISTINCT     f.id FROM     fanusers f LEFT JOIN     checkins c ON f.id = c.fanuser_id LEFT JOIN     info_matches m ON m.id = c.match_id WHERE     c.ctype = 'live' AND(        m.team_id1 IN(                SELECT DISTINCT                    m1.team_id1                FROM                    info_matches m1                RIGHT JOIN                                         fanusers_teams ft ON m1.team_id1 = ft.team_id                RIGHT JOIN                                         fanusers f ON f.id = ft.fanuser_id                WHERE                    m1.pointsteam1 - m1.pointsteam2 >= 3                  )        OR         m.team_id2 IN(                SELECT DISTINCT                    m2.team_id2                    FROM                    info_matches m2                RIGHT JOIN                                         fanusers_teams ft ON m2.team_id2 = ft.team_id                RIGHT JOIN                                         fanusers f ON f.id = ft.fanuser_id                WHERE                    m2.pointsteam2 - m2.pointsteam1 >= 3                  ))

如果有人成功解决了这个查询,我也希望能对我做错了什么做一个小小的解释。

谢谢。

最佳答案

这样的事情应该有效:

SELECT  DISTINCT f.id 

FROM fanusers f

JOIN checkins c
ON f.id = c.fanuser_id

JOIN fanusers_teams ft
ON f.id = ft.fanuser_id

JOIN info_matches m
ON m.id = c.match_id
AND
(
(ft.team_id = m.team_id1 AND pointsteam1 - pointsteam2 >= 3)
OR
(ft.team_id = m.team_id2 AND pointsteam2 - pointsteam1 >= 3)
)

WHERE c.ctype = 'live'

关于mysql - mysql中的复杂连接查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13821836/

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