MySQL:组合b列和b列中的不同值;c按a列分组

MySQL:组合b列和b列中的不同值;c按a列分组,mysql,database,Mysql,Database,这让我抓狂。我有以下基本的表结构: +-----+-----+-----+ | YEAR| ID1 | ID2 | +-----+-----+-----+ | 2012| 103 | 105 | | 2012| 110 | 114 | | 2013| 103 | 110 | | 2013| 114 | 120 | | 2014| 122 | 103 | +-----+-----+-----+ 我需要的是来自ID1列和ID2列的不同值的列表,这些值按列年份按结果分组。为了增加它的趣味性,最低年份

这让我抓狂。我有以下基本的表结构:

+-----+-----+-----+
| YEAR| ID1 | ID2 |
+-----+-----+-----+
| 2012| 103 | 105 |
| 2012| 110 | 114 |
| 2013| 103 | 110 |
| 2013| 114 | 120 |
| 2014| 122 | 103 |
+-----+-----+-----+
我需要的是来自ID1列和ID2列的不同值的列表,这些值按列年份按结果分组。为了增加它的趣味性,最低年份必须按不同的值显示。结果表应如下所示:

+-----+-----+
| Year|  ID |
+-----+-----+
| 2012| 103 |
| 2012| 105 |
| 2012| 110 |
| 2012| 114 |
| 2013| 120 |
| 2014| 122 |
+-----+-----+

任何帮助都将不胜感激

使用
union all
建立一个关系(
year,id
),并将
min(year)
应用于该关系和
group by
id

select min(year) min_year, id
from (
    select year, id1 id from your_table
    union all
    select year, id2 id from your_table
) x
group by id

使用
union all
建立一个关系(
year,id
),并将
min(year)
应用于该关系和
group by
id

select min(year) min_year, id
from (
    select year, id1 id from your_table
    union all
    select year, id2 id from your_table
) x
group by id

使用
union all
建立一个关系(
year,id
),并将
min(year)
应用于该关系和
group by
id

select min(year) min_year, id
from (
    select year, id1 id from your_table
    union all
    select year, id2 id from your_table
) x
group by id

使用
union all
建立一个关系(
year,id
),并将
min(year)
应用于该关系和
group by
id

select min(year) min_year, id
from (
    select year, id1 id from your_table
    union all
    select year, id2 id from your_table
) x
group by id

我们不是来为你工作的,请展示你的努力。然后我们会帮你让它工作。提示:在子查询中使用
UNION
将ID1和ID2放入一列中,因为2014年是不同值122的最低年份。不是ID应该是min,而是年份。@Barman我认为我的任何尝试都不会以任何方式帮助找到解决方案。我走上了完全错误的道路,仅仅是因为出于某种模糊的原因,我根本没有想到会有这样的结合。我感谢您的关注,用户在stackexchange上发布问题,而不是先考虑问题。但我确实认为,很明显,如果一个OP花了一些时间来说明这个问题(例如,表格结构的格式等),那么他是在绞尽脑汁,而不是懒惰。所以我要感谢jpw和草莓,他们确实尽力帮助了我。@Tomm不要感谢我,我在这一点上支持Barmar。他给了你一个很大的暗示。我走得太远了。我们不是来为你工作的,请展示你的努力。然后我们会帮你让它工作。提示:在子查询中使用
UNION
将ID1和ID2放入一列中,因为2014年是不同值122的最低年份。不是ID应该是min,而是年份。@Barman我认为我的任何尝试都不会以任何方式帮助找到解决方案。我走上了完全错误的道路,仅仅是因为出于某种模糊的原因,我根本没有想到会有这样的结合。我感谢您的关注,用户在stackexchange上发布问题,而不是先考虑问题。但我确实认为,很明显,如果一个OP花了一些时间来说明这个问题(例如,表格结构的格式等),那么他是在绞尽脑汁,而不是懒惰。所以我要感谢jpw和草莓,他们确实尽力帮助了我。@Tomm不要感谢我,我在这一点上支持Barmar。他给了你一个很大的暗示。我走得太远了。我们不是来为你工作的,请展示你的努力。然后我们会帮你让它工作。提示:在子查询中使用
UNION
将ID1和ID2放入一列中,因为2014年是不同值122的最低年份。不是ID应该是min,而是年份。@Barman我认为我的任何尝试都不会以任何方式帮助找到解决方案。我走上了完全错误的道路,仅仅是因为出于某种模糊的原因,我根本没有想到会有这样的结合。我感谢您的关注,用户在stackexchange上发布问题,而不是先考虑问题。但我确实认为,很明显,如果一个OP花了一些时间来说明这个问题(例如,表格结构的格式等),那么他是在绞尽脑汁,而不是懒惰。所以我要感谢jpw和草莓,他们确实尽力帮助了我。@Tomm不要感谢我,我在这一点上支持Barmar。他给了你一个很大的暗示。我走得太远了。我们不是来为你工作的,请展示你的努力。然后我们会帮你让它工作。提示:在子查询中使用
UNION
将ID1和ID2放入一列中,因为2014年是不同值122的最低年份。不是ID应该是min,而是年份。@Barman我认为我的任何尝试都不会以任何方式帮助找到解决方案。我走上了完全错误的道路,仅仅是因为出于某种模糊的原因,我根本没有想到会有这样的结合。我感谢您的关注,用户在stackexchange上发布问题,而不是先考虑问题。但我确实认为,很明显,如果一个OP花了一些时间来说明这个问题(例如,表格结构的格式等),那么他是在绞尽脑汁,而不是懒惰。所以我要感谢jpw和草莓,他们确实尽力帮助了我。@Tomm不要感谢我,我在这一点上支持Barmar。他给了你一个很大的暗示。我走得太远了。