检查sql中的值是否相等

时间:2014-01-02 16:15:24

标签: mysql sql

CustomerName     EmailAddress
Aaron            aaron@gmail.com
Christy          aaron@gmail.com
Jason            jason@gmail.com
Eric             eric@gmail.com
Aaron            bob@gmail.com

我想返回表中的值,其中customerName等于且emailaddress不相等。所以例如这个表应该返回。

Aaron            aaron@gmail.com
Aaron            bob@gmail.com

我是sql的新手,我不确定如何首先将其分解为checkign,客户名是相同的,然后查看emailaddresses

2 个答案:

答案 0 :(得分:1)

customername分组,然后计算您拥有的唯一电子邮件数量

select customername
from your_table
group by customername
having count(distinct emailaddress) > 1

如果您还需要结果中的电子邮件,则可以

select customername, emailaddress
from your_table
where customername in
(
    select customername 
    from your_table
    group by customername
    having count(distinct emailaddress) > 1
)

答案 1 :(得分:1)

您可以使用self-join

完成此操作
Select * from tablename a, tablename b
WHERE a.customername = b.customername
and a.emailaddress != b.emailaddress

这里有效:http://sqlfiddle.com/#!2/75687/1

你提到的只想要一个结果。然后你只需修改上面的内容:

Select Distinct(a.customername) from tablename a, tablename b
WHERE a.customername = b.customername
and a.emailaddress != b.emailaddress

此版本的工作版本:http://sqlfiddle.com/#!2/75687/3