如     TaskID 为 12   13
TaskID  12 下有PeopleType 为数组1 2 3 4 5 6 
TaskID  13 下有PeopleType 为数组1 12 3 1 1 16 
表格式为   :      tb_People,PeoID为自增
PeoID    PeopleType
1                  1
2                  1
3                  2
我需要取到    TaskId   下的PeopleType在tb_People表里对应的PeoID,但是TaskID下是不可以重复的。

解决方案 »

  1.   

    SELECT MAX( `PeoID` ) AS `PeoID` , 12 AS `TaskID` FROM `tb_People` WHERE `PlayerId` = 101 AND PeopleType  =  1 UNION
    SELECT MAX( `PeoID` ) AS `PeoID` , 12 AS `TaskID` FROM `tb_People` WHERE `PlayerId` = 101 AND PeopleType  =  2 UNION
    SELECT MAX( `PeoID` ) AS `PeoID` , 12 AS `TaskID` FROM `tb_People` WHERE `PlayerId` = 101 AND PeopleType  =  3 UNION
    SELECT MAX( `PeoID` ) AS `PeoID` , 12 AS `TaskID` FROM `tb_People` WHERE `PlayerId` = 101 AND PeopleType  =  4 UNION
    SELECT MAX( `PeoID` ) AS `PeoID` , 12 AS `TaskID` FROM `tb_People` WHERE `PlayerId` = 101 AND PeopleType  =  5 UNION
    SELECT MAX( `PeoID` ) AS `PeoID` , 12 AS `TaskID` FROM `tb_People` WHERE `PlayerId` = 101 AND PeopleType  =  6
    这样12的,  13的那条不知道昨结合起来。
      

  2.   

    SELECT PeoID , PeopleType , count( distinct PeopleType ) , 12 AS `TaskID` FROM `tb_People` WHERE PeopleType IN ( 1 , 2, 3 ,4 ,5 ,6 ) GROUP BY PeopleType SELECT PeoID , PeopleType , count( distinct PeopleType ) , 13 AS `TaskID` FROM `tb_People` WHERE PeopleType IN ( 1 , 2, 3 ,4 ,5 ,6 ) GROUP BY PeopleType 
    这两条不知道昨组合在一起,结果想取到这两条SQL的 PeoID,但是不知道昨实现 PeoID不重复。