Mysql 选择两个字段中值相同,另一个字段中值不同的行
我想选择在Mysql 选择两个字段中值相同,另一个字段中值不同的行,mysql,sql,Mysql,Sql,我想选择在column1和column2中具有相同值但在column3中不同的行 这是我的桌子 专栏1 专栏2 第3栏 A. J abc A. K def A. L xyz B J abc B J def B L xyz C K def C K def 我想选择在第1列和第2列中具有相同值但在第3列中不同的行 使用存在: select t.* from my_table t where exists (select 1 from my_table t2
column1
和column2
中具有相同值但在column3
中不同的行
这是我的桌子
专栏1
专栏2
第3栏
A.
J
abc
A.
K
def
A.
L
xyz
B
J
abc
B
J
def
B
L
xyz
C
K
def
C
K
def
我想选择在第1列和第2列中具有相同值但在第3列中不同的行
使用存在
:
select t.*
from my_table t
where exists (select 1
from my_table t2
where t2.column1 = t.column1 and t2.column2 = t.column2 and
t2.column3 <> t.column3
);
您的查询版本只返回
column1
/column2
对,这些对的column3
值超过一行。我认为应该这样做,对您的版本进行小的更正:
选择第1列、第2列
从我的桌子上
按第1列、第2列分组
计数(不同列3)>1;
SELECT column1, column2
FROM my_table
GROUP BY column1, column2
HAVING MIN(column3) <> MAX(column3);