MySQL在自己的列上有多个值

时间:2012-06-18 09:59:17

标签: mysql database

我有一张像这样的桌子;

id1     id2
1       1
2       1
1       2
3       2
1       3
4       3
1       4
5       4

我想以GROUP为行id2的方式选择它,但仍保留表中相应行的id1

所以我得到一个像这样的结果集;

id1     id1     id2
1       2       1
1       3       2
1       4       3
1       5       4

我从未在高级数据库查询方面做过一半 - 我将如何实现这一目标?

3 个答案:

答案 0 :(得分:2)

如果id1的每个不同值都有2行(id2的2个值),则可以使用:

SELECT MIN(id1) AS id1_a
     , MAX(id1) AS id1_b
     , id2
FROM tableX
GROUP BY id2 ;

答案 1 :(得分:1)

您可以尝试使用

SELECT id2, GROUP_CONCAT(id1) FROM your_table
GROUP BY id2

这样,对于每个id2值,您可以使用逗号分隔所有id1值的列 看看GROUP_CONCAT syntax

答案 2 :(得分:1)

这可能不是完美的解决方案,但在您的情况下,它应该工作。这是我使用过的技巧。

选择id1,(sum(id1) - id1)为nID1,id2来自table_name group by id2

希望它有效。 Ujjwal