- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试基于具有多个条件或/和的左连接构建视图。这是多个堆栈视图的第一个视图之一,这些视图计算了3v3格式的集合匹配的神奇排名。
我已经成功地为2V2格式构建了相同的视图,我正在尝试为3v3复制它,但它不起作用。
小上下文:我们是6个朋友的兄弟会。我们经常在一起玩,但很少有人在一起。我们根据在场的玩家数量调整游戏格式。如果我们是一个未配对的号码,我们将单打独斗(1对全部),如果我们配对,我们通常在团队中(2V2或3V3),但我们也可以单打独斗对其他3或5名球员。每种格式有16种不同的游戏格式(1V1,Solo 3P,Solo 4P,2V2等等),所有的排名都是由MySQL从堆叠的SQL视图中计算出来的。当我们在队中比赛时,我们随机组建两个队。因此,在团队形式中,可以有多个团队组合,但只能有一个限制的数字,因为除了6名球员之外,不能有其他人。
为了建立2V2和3V3排名,我构建了两个视图,从players表中计算出所有可能的团队组合,如下所示:
2v2团队组合:
P1 P2
Bastien Charles
Bastien Francois
Charles Francois
Bastien Mathieu
Charles Mathieu
Francois Mathieu
Bastien Thomas
Charles Thomas
Francois Thomas
Mathieu Thomas
Bastien Valery
Charles Valery
Francois Valery
Mathieu Valery
Thomas Valery
P1 P2 P3
Bastien Charles Francois
Bastien Charles Mathieu
Bastien Francois Mathieu
Charles Francois Mathieu
Bastien Charles Thomas
Bastien Francois Thomas
Charles Francois Thomas
Bastien Mathieu Thomas
Charles Mathieu Thomas
Francois Mathieu Thomas
Bastien Charles Valery
Bastien Francois Valery
Charles Francois Valery
Bastien Mathieu Valery
Charles Mathieu Valery
Francois Mathieu Valery
Bastien Thomas Valery
Charles Thomas Valery
Francois Thomas Valery
Mathieu Thomas Valery
select C.P1 AS Joueur1,C.P2 AS JOueur2,count(0) AS Twin,sum(P.Win) AS Pwin
from MTG_Matchs M
join MTG_Matchs_Formats F on M.Format = F.Format
join VIEW_Matchs_Formats_Points P on P.Format = F.Format
left join MTG_Matchs_Joueurs J1 on (J1.MatchID = M.ID and J1.Num = 1)
left join MTG_Matchs_Joueurs J2 on (J2.MatchID = M.ID and J2.Num = 2)
left join VIEW_Equipes_Combinaisons_2 C on
((C.P1 = J1.Joueur) and (C.P2 = J2.Joueur))
or ((C.P2 = J1.Joueur) and (C.P1 = J2.Joueur))
where ((F.IsTeam = 1)
and (F.NbrJoueurs = 4)
and (J1.Team = J2.Team)
and (J2.Win = 1)
and (J1.Win = 1))
group by C.P1,C.P2
Joueur1 JOueur2 Twin Pwin
Charles Francois 5 150
Francois Thomas 11 330
Francois Mathieu 7 210
Mathieu Thomas 7 210
Bastien Charles 2 60
Bastien Thomas 5 150
Charles Thomas 7 210
Charles Mathieu 8 240
Francois Valery 2 60
select J.*
from MTG_Matchs M
join MTG_Matchs_Formats F on (M.Format = F.Format)
left join MTG_Matchs_Joueurs J on J.MatchID = M.ID
where (F.IsTeam = 1)
and (F.NbrJoueurs = 6)
ID MatchID Num Team Joueur Deck Score Win
20 5 1 2 Bastien 207 0 0
18 5 2 1 Charles 144 5 1
22 5 3 2 Francois 203 0 0
19 5 3 1 Mathieu 222 0 1
17 5 1 1 Thomas 208 8 1
21 5 2 2 Valery 194 0 0
28 6 3 2 Bastien 207 10 1
23 6 1 1 Charles 144 0 0
27 6 2 2 Francois 203 10 1
25 6 3 1 Mathieu 222 0 0
24 6 2 1 Thomas 209 0 0
26 6 1 2 Valery 194 20 1
34 7 3 2 Bastien 154 0 0
29 7 1 1 Charles 144 20 1
33 7 2 2 Francois 200 0 0
31 7 3 1 Mathieu 222 0 1
30 7 2 1 Thomas 209 8 1
32 7 1 2 Valery 194 0 0
496 146 3 1 Bastien 222 0 1
499 146 3 2 Charles 154 0 0
495 146 2 1 Francois 209 8 1
494 146 1 1 Mathieu 144 20 1
498 146 2 2 Thomas 200 0 0
497 146 1 2 Valery 194 0 0
502 147 3 1 Bastien 222 0 0
505 147 3 2 Charles 154 0 1
501 147 2 1 Francois 209 0 0
500 147 1 1 Mathieu 144 0 0
504 147 2 2 Thomas 200 0 1
503 147 1 2 Valery 194 0 1
select J1.Joueur, J2.Joueur, J3.Joueur
from MTG_Matchs M
join MTG_Matchs_Formats F on (M.Format = F.Format)
join VIEW_Matchs_Formats_Points P on P.Format = F.Format
left join MTG_Matchs_Joueurs J1 on ((J1.MatchID = M.ID) and (J1.Num = 1))
left join MTG_Matchs_Joueurs J2 on ((J2.MatchID = M.ID) and (J2.Num = 2))
left join MTG_Matchs_Joueurs J3 on ((J3.MatchID = M.ID) and (J3.Num = 3))
where (F.IsTeam = 1)
and (F.NbrJoueurs = 6)
and (J1.Team = J2.Team)
and (J2.Team = J3.Team)
and (J1.Win = 1)
and (J2.Win = 1)
and (J3.Win = 1)
Joueur Joueur Joueur
#1 Charles Thomas Mathieu
#2 Valery Francois Bastien
#3 Valery Thomas Charles
#4 Thomas Charles Mathieu
#5 Mathieu Francois Bastien
select C.P1 AS Joueur1, C.P2 AS Joueur2, C.P3 AS Joueur3, count(0) AS Twin, sum(P.Win) AS Pwin
from MTG_Matchs M
join MTG_Matchs_Formats F on (M.Format = F.Format)
join VIEW_Matchs_Formats_Points P on P.Format = F.Format
left join MTG_Matchs_Joueurs J1 on ((J1.MatchID = M.ID) and (J1.Num = 1))
left join MTG_Matchs_Joueurs J2 on ((J2.MatchID = M.ID) and (J2.Num = 2))
left join MTG_Matchs_Joueurs J3 on ((J3.MatchID = M.ID) and (J3.Num = 3))
left join VIEW_Equipes_Combinaisons_3 C
on (
((C.P1 = J1.Joueur) and (C.P2 = J2.Joueur) and (C.P3 = J3.Joueur))
or ((C.P2 = J1.Joueur) and (C.P3 = J2.Joueur) and (C.P1 = J3.Joueur))
or ((C.P3 = J1.Joueur) and (C.P1 = J2.Joueur) and (C.P2 = J3.Joueur))
)
where (F.IsTeam = 1)
and (F.NbrJoueurs = 6)
and (J1.Team = J2.Team)
and (J2.Team = J3.Team)
and (J1.Win = 1)
and (J2.Win = 1)
and (J3.Win = 1)
group by C.P1,C.P2, C.P3
Joueur1 Joueur2 Joueur3 Twin Pwin
NULL NULL NULL 4 160
Charles Mathieu Thomas 1 40
Joueur1 Joueur2 Joueur3 Twin Pwin
Mathieu Francois Bastien 1 40
Valery Thomas Charles 1 40
Charles Mathieu Thomas 2 80
Bastien Valery Francois 1 40
left join VIEW_Equipes_Combinaisons_3 C
on (
((C.P1 = J1.Joueur) and (C.P2 = J2.Joueur) and (C.P3 = J3.Joueur))
or ((C.P2 = J1.Joueur) and (C.P3 = J2.Joueur) and (C.P1 = J3.Joueur))
or ((C.P3 = J1.Joueur) and (C.P1 = J2.Joueur) and (C.P2 = J3.Joueur))
)
select C.P1 AS Joueur1, C.P2 AS Joueur2, C.P3 AS Joueur3, count(0) AS Twin, sum(P.Win) AS Pwin
from MTG_Matchs M
join MTG_Matchs_Formats F on ((M.Format = F.Format) AND (F.IsTeam = 1) and (F.NbrJoueurs = 6))
join VIEW_Matchs_Formats_Points P on P.Format = F.Format
left join MTG_Matchs_Joueurs J1 on ((J1.MatchID = M.ID) and (J1.Num = 1) and (J1.Win = 1))
left join MTG_Matchs_Joueurs J2 on ((J2.MatchID = M.ID) and (J2.Num = 2) and (J2.Win = 1) AND (J1.Team = J2.Team))
left join MTG_Matchs_Joueurs J3 on ((J3.MatchID = M.ID) and (J3.Num = 3) and (J2.Win = 1) AND (J2.Team = J3.Team) )
left join VIEW_Equipes_Combinaisons_3 C
on (
((C.P1 = J1.Joueur) and (C.P2 = J2.Joueur) and (C.P3 = J3.Joueur))
or ((C.P2 = J1.Joueur) and (C.P3 = J2.Joueur) and (C.P1 = J3.Joueur))
or ((C.P3 = J1.Joueur) and (C.P1 = J2.Joueur) and (C.P2 = J3.Joueur))
)
group by C.P1,C.P2, C.P3
最佳答案
将右表条件从何处分别移到上。
关于mysql - 具有多个条件OR/AND的SQL连接不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27397101/
今天有小伙伴给我留言问到,try{...}catch(){...}是什么意思?它用来干什么? 简单的说 他们是用来捕获异常的 下面我们通过一个例子来详细讲解下
我正在努力提高网站的可访问性,但我不知道如何在页脚中标记社交媒体链接列表。这些链接指向我在 facecook、twitter 等上的帐户。我不想用 role="navigation" 标记这些链接,因
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我就废话不多说了,大家还是直接看代码吧~ ? 1
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。 核心功能 Mav
我是一名优秀的程序员,十分优秀!