如何查询同一id在特定列Mysql中的不同值

如何查询同一id在特定列Mysql中的不同值,mysql,sql,Mysql,Sql,我在下表中提到: ID Val1 1 AVD1R 1 ART1R 2 CFD4E 3 DER1R 3 DER1F 我想获取那些同一ID多次使用不同Val1的记录 所需输出: ID Val1 1 AVD1R 1 ART1R 3 DER1R 3 DER1F 我试过这个: 从表1中选择id,Val1,其中countVal1>1按id分组;但它不起作用。对不起,我已将答案更

我在下表中提到:

ID      Val1
1       AVD1R
1       ART1R
2       CFD4E
3       DER1R
3       DER1F
我想获取那些同一ID多次使用不同Val1的记录

所需输出:

ID      Val1
1       AVD1R
1       ART1R
3       DER1R
3       DER1F
我试过这个:
从表1中选择id,Val1,其中countVal1>1按id分组;但它不起作用。

对不起,我已将答案更改为:

SELECT a.* FROM (
    SELECT ID, Val1, COUNT(*) AS Cn FROM Table1 GROUP BY ID, Val1) AS a
LEFT JOIN (
    SELECT ID, COUNT(*) AS Cn FROM Table1 GROUP BY ID
) AS b ON a.ID = b.ID
WHERE a.Cn <> b.Cn
SELECT t1.* FROM Table1 t1
INNER JOIN Table1 t2 
  ON t1.id=t2.id AND t1.VAl1 <> t2.Val1;
样品


我不知道其他栏目是什么

但在SQL Server中:

select distinct a.id,val1 from
(
select id,val1
from different
)a
inner join
(
select id,count(id) as cnt
from different 
group by id
having count(*)>1
 ) b
  on  a.id=b.id

在id和where count*>1@SloanThrasher我尝试了这个select id,Val1,来自表1,其中countVal1>1按id分组;但它不起作用。为什么ID=3的行不在结果中?@PaulSpiegel,因为ID=3的Val1列中的值都相同。DER1R与DER1F相同?我只想要那些有相同多个ID但Val1不同的行。@Rahul shah-对不起,我已更改我的answerCount*将不起作用,因为表中还有许多其他列,但我想将ID与Val1进行比较。我只想要相同ID的Val1不同的记录。你看到没有计数的新答案了吗:-如果每个ID有两行以上,你会得到重复的记录。@Paul Spiegel-谢谢-为了防止重复,你可以按ID添加组,t1.Val1;
select distinct a.id,val1 from
(
select id,val1
from different
)a
inner join
(
select id,count(id) as cnt
from different 
group by id
having count(*)>1
 ) b
  on  a.id=b.id