在MySql中,选择所有具有不同id的


In MySql, SELECT all with DIFFERENT id?

我有一个表,

(请注意,这个问题可能听起来像重复,但我在发布这个之前检查了其他问题…如果你在其他帖子中找到答案,建议我而不是投票。以防万一,我保证把它删掉。thx)

|tid |name|age|sex|pack_id
 1   |Joe |57 |M  |77
 2   |Joe |57 |M  |77
 3   |Joe |57 |M  |89
 4   |Joe |57 |M  |89
 5   |Joe |57 |M  |94
 6   |Roy |98 |M  |7
 7   |Roy |98 |M  |8
 8   |Roy |98 |M  |9
 9   |Roy |98 |M  |7
 10  |Roy |98 |M  |7
 11  |Roy |98 |M  |7
 12  |Joe |46 |M  |96
 13  |Guh |97 |F  |1
 14  |Kin |68 |F  |33
 15  |Kin |68 |F  |37
 16  |Kin |68 |F  |37
 17  |Kin |68 |F  |37
 18  |Kin |68 |F  |35
 19  |Kin |68 |F  |37
 20  |Pit |43 |F  |77
 21  |Pit |43 |F  |1
 22  |Pit |43 |F  |2
 23  |Pit |43 |F  |1
 24  |Pit |43 |F  |77
 25  |Joe |71 |M  |75
 26  |Bob |82 |M  |77
 27  |Guh |97 |F  |20
 28  |Guh |97 |F  |28
 29  |Guh |97 |F  |28
 30  |Guh |97 |F  |23

我的目标是有一个查询,将产生不重复的pack_id比如:

|tid |name|age|sex|pack_id
 1   |Joe |57 |M  |77    
 3   |Joe |57 |M  |89
 5   |Joe |57 |M  |94
 6   |Roy |98 |M  |7
 7   |Roy |98 |M  |8
 8   |Roy |98 |M  |9
 12  |Joe |46 |M  |96
 13  |Guh |97 |F  |1
 14  |Kin |68 |F  |33
 18  |Kin |68 |F  |35
 19  |Kin |68 |F  |37
 20  |Pit |43 |F  |77
 21  |Pit |43 |F  |1
 22  |Pit |43 |F  |2
 25  |Joe |71 |M  |75
 26  |Bob |82 |M  |77
 27  |Guh |97 |F  |20
 28  |Guh |97 |F  |28
 30  |Guh |97 |F  |23

I have try:

SELECT `tid` ,`name`,`age`,`sex`,`pack_id` FROM `myTable` group by `pack_id` //FAILED

试过了:

SELECT DISTINCT(`pack_id`) ,`name`,`age`,`sex`,`pack_id` FROM `myTable` group by `pack_id`// RETURNS ONE SINGLE 'name' MANY TIMES

尝试

MySQL select distinct where in all

尝试

如何获得所有具有多个不同地址id的唯一id

try many more…

还是不行

听起来您需要在两个级别上GROUP BY: namepack_id。例如:

SELECT tid,name,age,sex,pack_id FROM yourtable GROUP BY name, pack_id;

详细信息请参见参考手册

SELECT min(tid), name,age,sex,pack_id 
FROM myTable 
group by name, age, sex, pack_id