查询以匹配单个列中具有相同值的不同值

时间:2015-09-11 19:11:33

标签: mysql sql

我正在尝试编写一个查询,它将在列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

任何帮助都会很棒

3 个答案:

答案 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