J'essaie d'exécuter une requête SQL pour afficher les résultats d'un ensemble de combats dans une compétition. Les détails des combats sont stockés dans les champs combattant1, combattant2 et vainqueur. Ce que j'ai besoin de faire, c'est d'établir une liste de tous les combats, chaque combat apparaissant deux fois dans la liste - une fois avec par exemple
Competitor:fighter1, Opponent:fighter2, Winner:fighter1
et aussi, ailleurs dans la liste
Competitor:fighter2, Opponent:fighter1, Winner:fighter1
J'ai utilisé une union sql pour extraire les détails de chaque combat deux fois, et j'ai essayé d'attribuer des alias différents aux colonnes fighter1 et fighter2 pour les intervertir, mais je ne suis même pas sûr que cela soit possible.
Ma requête est la suivante (en omettant les éléments inutiles des autres tables)
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
Cette requête affiche chaque combat deux fois, mais comme ceci :
Competitor:fighter1, Opponent:fighter2, Winner:fighter1
Competitor:fighter1, Opponent:fighter2, Winner:fighter1
Quelqu'un a-t-il une idée de la façon dont je peux intervertir les deux et ordonner la liste en fonction du combattant qui a été assigné comme "concurrent" à chaque fois ?
Merci d'avance.