我试图运行SQL查询以在竞争中显示一组打斗的结果。 战斗细节存储在战斗机1,战斗机2和获胜者的字段中。 我需要做的就是把在一起的所有战斗的列表,每个战斗在列表中出现两次 - 一次用,例如如果两个'OR'条件都为真,则返回相同的行
Competitor:fighter1, Opponent:fighter2, Winner:fighter1
而且,其他地方的列表
Competitor:fighter2, Opponent:fighter1, Winner:fighter1
我一直在使用一个sql union从每次打斗拉两次细节,并试图给战斗机1和战斗机2列分配不同的别名来交换它们,但我甚至不确定这是否可能。
我的查询是这样的(与其他表省略不必要的东西)
SELECT wp_ema_fights.fighter1 AS competitor,
wp_ema_fights.fighter2 AS opponent,
wp_ema_fights.winner AS winner
FROM wp_ema_fights
UNION ALL
SELECT wp_ema_fights.fighter1 AS opponent,
wp_ema_fights.fighter2 AS competitor,
wp_ema_fights.winner AS winner
FROM wp_ema_fights
ORDER BY competitor
此查询显示各打了两次,但像这样:
Competitor:fighter1, Opponent:fighter2, Winner:fighter1
Competitor:fighter1, Opponent:fighter2, Winner:fighter1
有没有人有任何想法如何我可以将两者交换,并根据每次战斗机被指定为“竞争对手”的顺序排列列表。
在此先感谢。
+1:不要移动SELECT语句中的字段,在***两个*** SELECT语句中将它们保持相同的顺序。 – MatBailie
非常感谢!这正在做我现在需要的。 – user10403