我刚刚开始学习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
答案 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