根据3个不同的列选择不同的行

时间:2013-01-30 11:33:55

标签: mysql sql

我有一张这样的表

    id     userid     cc    cop    
    1       23        0.5   0.9
    2       23        0.5   0.9
    3       29        2.6   9.4
    4       75        4.8   8.9
    5       29        2.6   9.4
    6       45        6.7   9.0

我想要所有的角色,使得cc和警察是截然不同的。结果应该是 像这样的东西

    id     userid     cc    cop    
    1       23        0.5   0.9
    3       29        2.6   9.4
    4       75        4.8   8.9
    6       45        6.7   9.0

我想要任何具有cc,cop,userid的行,只需要选择一个 伪代码:从表中选择*,其中userid,cc,cop与结果不同。

4 个答案:

答案 0 :(得分:2)

这将返回所需的结果,无论记录是如何保存在表格上的。

SELECT MIN(ID) ID, userid, cc, cop
FROM   tableName
GROUP  BY userid, cc, cop

其他来源

答案 1 :(得分:2)

也许你可以尝试这样的事情

SELECT MIN(id), userid, cc, cop 
FROM table 
GROUP BY userid, cc, cop;

它将选择每个出现的第一个id。

答案 2 :(得分:1)

您将需要使用使用GROUP BY子句的select语句。

SELECT *
FROM Table
GROUP BY userid

它们显示为单独的条目,因为每行至少有一个不同的列(在本例中为id)。您可以通过使用上面的语句或省略SELECT语句中的“id”列来避免这种情况,例如:

SELECT userid, cc, cop
FROM Table

如果您选择没有上述id列的数据,那么数据将自动分组,因为会有完全重复的行。

希望这有帮助。

答案 3 :(得分:0)

使用分组

尝试此查询
select * from mytable group by userid , cc , cop