如何在MySQL中只返回没有COUNT或GROUP的唯一值

时间:2012-10-02 23:29:42

标签: mysql

我的数据库类让我难过这个问题。如果有人能帮助我那会很棒

我有一个有2列的表。第1列是苏打类型(可口可乐,百事可乐,胡椒博士等),第2列是人的名字。人们可以喝多种苏打水。

某些条目可能是

  1. 可乐杰里米
  2. 健怡可乐山姆
  3. 博士。 Pepper Jeremy
  4. 我必须写一个查询,返回只喝一种苏打水的人。所以Jeremy不会被退回,但Sam会。问题是我不能使用COUNT或GROUP(或任何聚合函数)!没有那些我怎么办呢?

    谢谢!

2 个答案:

答案 0 :(得分:2)

您可以尝试这样的事情:

select a.soda, a.person 
  from table a
 where not exists(select 1 
                   from table b 
                  where b.person = a.person 
                    and b.soda <> a.soda)

答案 1 :(得分:0)

如果子查询没问题,这样的事情就可以了:

select distinct * from sodas as s1 where s1.name not in (select s2.name from sodas as s2 where s2.name=s1.name and s2.soda <> s1.soda)