如何查询同一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