在行中查找列中的唯一值

时间:2015-11-21 12:13:46

标签: sql

我刚刚开始学习SQL,我想要的是编写一个查询,只获得第1列中没有“D”的第2列值。

例如,在下面的情况下是“AC”

Column1 Column 2
A       AB
B       AB
C       AB
D       AB
A       AB
B       AB
C       AB
D       AB
A       AB
B       AB
A       AC
B       AC
C       AC
A       AC
B       AC
C       AC
A       AC
B       AC
C       AC

2 个答案:

答案 0 :(得分:1)

试试这个:

select column1, coulmn2 from table_name where column1 != 'D'

column1 != 'D'会从D中包含column1的结果中删除记录。

同样,如果您想忽略column1中的更多值,可以使用not in

select column1, coulmn2 from table_name where column1 not in ('D','A')

<强> UPDATE1

要计算column1中没有“D”的记录,您可以使用:

select count(*) from table_name where column1 != 'D'

答案 1 :(得分:0)

请参阅基于MySQL 5.6的this SQL fiddle

SELECT DISTINCT column2
FROM table_name
WHERE column2 NOT IN
(
    SELECT column2
    FROM table_name
    WHERE column1 = 'D'
);

基本上有两个查询:内部查询获取所有column2个值,这些值具有值为column1的对应D;外部查询从原始表中提取所有column2值,不包括内部查询找到的值。

数据:

column1     column2
A           AB
B           AB
C           AB
D           AB
A           AC
B           AC
C           AC
A           AD
D           AD
D           AD
A           AE

输出:

column2
AC
AE