将两列合并为一个的SQL查询

问题描述 投票:1回答:1

我有一个匹配和得分表,看起来像这样

match_id | player1 | player2 | player1_score | player2_score |
---------|---------|---------|---------------|---------------|
       1 |       1 |       2 |            30 |            50 |
       2 |       3 |       1 |            35 |            10 |
       3 |       1 |       4 |            40 |            20 |
       4 |       2 |       3 |            20 |            25 |
       5 |       4 |       2 |            65 |            15 |
       6 |       3 |       4 |            10 |            20 |

并且我想用单列的分数进行查询

match_id | player | opponent | score |
---------|--------|----------|-------|
       1 |      1 |        2 |    30 |
       2 |      3 |        1 |    35 |
       3 |      1 |        4 |    40 |
       4 |      2 |        3 |    20 |
       5 |      4 |        2 |    65 |
       6 |      3 |        4 |    10 |
       1 |      2 |        1 |    50 |
       2 |      1 |        3 |    10 |
       3 |      4 |        1 |    20 |
       4 |      3 |        2 |    25 |
       5 |      2 |        4 |    15 |
       6 |      4 |        3 |    20 |

这等效于将表中的某些列与其他列串联:

match_id |  player | opponent |         score |
---------|---------|----------|---------------|
match_id | player1 |  player2 | player1_score |
match_id | player2 |  player1 | player2_score |

但是我不确定会执行什么适当的操作。 join是我知道的唯一将表格组合起来的操作,但是这里似乎使用了错误的工具。

CONCATUNION似乎都是合理的,但在此更可取?查询是什么?

我有一个匹配和得分表,看起来像这个match_id |玩家1 | player2 | player1_score | player2_score | --------- | --------- | --------- || --------------- | ---- ----------- | ...

sql union concat
1个回答
1
投票

似乎您需要工会

© www.soinside.com 2019 - 2024. All rights reserved.