我正在尝试编写一个查询,它将在列b中采用两个不同的值,然后将其与列c进行比较,以确定列b中的两个值是否在列C中共享相同的值。但是,我还需要列A中的列输出也是如此。
例如
Column A Column B Column C
Test 1 x 12345
Test 2 y 12345
Test 3` A 12344
Test 4 D 12342
期望输出
Column A Column B Column C
Test 1 x 12345
Test 2 y 12345
任何帮助都会很棒
答案 0 :(得分:1)
我不确定ColumnB
中的值是否显着。此查询查找重复的ColumnC
值,然后返回这些行:
select * from T where ColumnC in (
select ColumnC from T
group by ColumnC
having count(*) > 1 /* or maybe count(distinct ColumnB) > 1 */
)
答案 1 :(得分:0)
您可以执行以下select t.*
from tbl1 t join tbl1 s on t.`Column C` = s.`Column C`
and t.`Column B` <> s.`Column B`;
。查看演示小提琴http://sqlfiddle.com/#!9/da525/4
WHERE EXISTS
(或)使用select t.*
from tbl1 t
where exists ( select 1 from tbl1
where `Column C` = t.`Column C`
and `Column B` <> t.`Column B`);
{{1}}
答案 2 :(得分:0)
试试这个
SELECT a.* FROM table a join table b on a.c=b.c and a.b<>b.b
查询未考虑c和b列中具有相同值的行。
如果需要,您可以在选择中添加DISTINCT
。