表中有以下结构:

id | name     | descr
1  | BMW      | asafsf saf
2  | Audi     | asafsf saf
3  | Audi     | asafsf saf
4  | Porsche  | asafsf saf
5  | Mercedes | asafsf saf
6  | Mercedes | asafsf saf
7  | Audi     | asafsf saf


我想获取表中只有一个记录的所有公司,因此在这种情况下,输出将是:

1  | BMW      | asafsf saf
4  | Porsche  | asafsf saf


如何做到这一点(我尝试过分组,但这也会报废表中有多行的其他公司)?

PS:我使用的是Ruby On Rails,所以ActiveRecord中可能有一个方法可以做到这一点。

先感谢您。

最佳答案

您可以使用GROUP BY,并使用HAVING子句将结果保留为一行:http://www.w3schools.com/sql/sql_having.asp

   SELECT id, name, descr
     FROM tablename
 GROUP BY name
   HAVING COUNT(*) = 1

10-08 12:08