- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在为我本地的足球队制作一个网站,我想在一个页面上显示每个团队成员的一些简单数据(场上位置、比赛次数、进球数等)。我尝试通过对数据库的一次查询来选择所有需要的数据,因为我了解到最大限度地减少网络调用次数有利于页面加载时间。一开始我以为我已经成功了,因为一切都按我想要的方式显示,但现在我们已经进入赛季几场比赛,带有查询的页面显示错误:The SELECT will check more than MAX_JOIN_SIZE rows
。 max_join_size 设置为 4 000 000,所以我认为我在查询中做了一些非常错误的事情,让它返回那么多行。我想我写的查询有点超出我的头脑,因为我很难想象它来真正看到我做错了什么。也许你们中的一些人可以帮助我?查询来了,之后我将尝试解释一下:
SELECT member_t.shirt_number, member_t.name, member_t.surname, pos_t.name AS position, pos_t.order_num AS posorder,
COUNT(DISTINCT m_m.match_id) AS matchnum, COUNT(DISTINCT goal_t.match_id, goal_t.internal_id) as goalnum, COUNT(DISTINCT assist_t.match_id, assist_t.internal_id) AS assistnum, COUNT(DISTINCT match_t.id) AS momnum, COUNT(DISTINCT yc_t.match_id, yc_t.internal_id) AS ycnum, COUNT(DISTINCT rc_t.match_id, rc_t.internal_id) AS rcnum
FROM team_member AS member_t
LEFT JOIN team_member_position AS pos_t ON member_t.position_id = pos_t.id
LEFT JOIN
(SELECT * FROM match_member WHERE match_member.match_id IN (SELECT id FROM football_match WHERE is_finished = 1)) AS m_m ON member_t.id = m_m.team_member_id
LEFT JOIN match_event_goal AS goal_t ON member_t.id = goal_t.team_member_id
LEFT JOIN match_event_goal AS assist_t ON member_t.id = assist_t.team_member_assist_id
LEFT JOIN football_match AS match_t ON member_t.id = match_t.mom_id
LEFT JOIN
(SELECT match_id, internal_id, team_member_id FROM match_event_card WHERE yc = 1) AS yc_t ON member_t.id = yc_t.team_member_id
LEFT JOIN
(SELECT match_id, internal_id, team_member_id FROM match_event_card WHERE rc = 1) AS rc_t ON member_t.id = rc_t.team_member_id
GROUP BY member_t.id
ORDER BY posorder ASC, name ASC
表(别名)
member_t
:每个团队成员占一行。 6 列,21 行
pos_t
:字段上的每个位置占一行。 2 列,5 行
m_m
:用于配对各个团队成员和各个比赛的表格。 2 列,72 行
goal_t
/assist_t
:一场比赛中的每个进球占一行。 6 列,17 行
match_t
:每个注册的匹配占一行。 9 列,6 行
yc_t
/rc_t
:一场比赛中每位持牌球员占一行。 6 列,10 行
因此,对于 member_t
和 pos_t
我只选择一些列(姓名、 Jersey 号码、位置等),而对于其他列,我计算结果以获得总数(比赛次数、进球数、红牌和黄牌等)。我加入同一张 table 两次(例如我先计算进球,然后在同一张 table 的帮助下计算助攻),不知道这是否是一个不好的方法。
也许有一个明显的解释。如果您需要更多信息,请告诉我。我希望你能帮助我找到一种有效的方法来收集每个团队成员的数据。谢谢!
最佳答案
尽量减少查询数量并不总是一个好主意。首先,此类查询更难以维护。其次,情况并不总是如此,一个大查询会比几个较小的查询更有效。这取决于。
如果您要执行多个查询,例如每个统计数据一个,一次为所有玩家获取它,那么应该没问题。如果您要针对每个玩家进行查询,那就不行了。
关于mysql - 在行数较少的表上使用多个左连接进行查询超出 max_join_size,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37372626/
我正在使用Visual Studio 2012和Web Essential 2012,而Less生成的css与预期的不一样 //style.less .selector{ max-heig
我创建了一个基于LESS的小型混合器,用于以标准或视网膜格式输出图像。我无法理解将变量包装在与此相伴的一些CSS URL中-当我编译下面的代码时,我最终得到 url('http://sample.co
有人可以帮助我使用 CSS(less)吗,因为我似乎还不能理解它是如何工作的,我已经通过 node.js 安装了它,但现在如何将它链接到我的代码/网页? 由于某种原因,选择框没有输出到网页上,因为很可
我知道大多数算术运算只能使用按位运算符( Add two integers using only bitwise operators? 、 Multiplication of two integers
我需要在 less 中选择一个类的第 n 个子元素,而不是计算特定类的元素。例如,给定: 李 li class="skip_this" 李 李 李 我想让第 n 个 child 在计数时跳过 skip
当我单击一个按钮时,我进行了一个 ajax 调用,该调用将不同的 html 代码加载到一个 ID 为“main”的 div 中。我可以毫无问题地显示 html 代码,但我找不到将 css 和 js 代
我正在使用非常有限的 Shell 开发嵌入式 Linux。内置命令非常少。 我想检查 gpio 端口。这适用于以下内容。但它需要很多 CPU/IO - 电源!!所以我想像 sleep 一样得到短暂的休
我是一名优秀的程序员,十分优秀!