MySQL查询所有不同于列A,其中没有一列在列B中具有特定值

时间:2014-07-22 05:54:43

标签: mysql sql

有人可以指出我正确的方向进一步寻求或给我任何关于以下任务的提示吗?

我想列出来自A列的MySQL表格中的所有不同值,这些值在B列中没有特定值。我的意思是在B中没有相同的A值具有此特定值在任何行中。采取下表(让这个具体值为1):

column A  | column B
----------------------
apple     |
apple     |
apple     | 1
banana    | anything
banana    |
lemon     |
lemon     | 1
orange    |

我希望得到以下结果:

banana
orange

感谢。

4 个答案:

答案 0 :(得分:2)

由于存在空值,我还在列B中添加了一个nvl条件。

<强> ORACLE:

SELECT DISTINCT COLUMN_A  FROM MY_TABLE
WHERE COLUMN_A  NOT IN (SELECT COLUMN_A FROM MY_TABLE WHERE nvl(COLUMN_B,'dummy')  = '1');

<强> MYSQL:

SELECT DISTINCT COLUMN_A  FROM MY_TABLE
WHERE COLUMN_A  NOT IN (SELECT COLUMN_A FROM MY_TABLE WHERE IFNULL(COLUMN_B,'dummy')  = '1');

答案 1 :(得分:2)

这可能会对您有所帮助:

SELECT DISTINCT A FROM MY_TABLE
WHERE A NOT IN (SELECT DISTINCT A FROM MY_TABLE WHERE B = 1)

答案 2 :(得分:1)

SELECT * FROM your_Table WHERE Column_A NOT IN(
    SELECT Column_A FROM Your_Table WHERE Column_B = '1'
)

答案 3 :(得分:1)

此声明为您提供预期结果:

select COLUMNA from myTable where COLUMNA not in (select distinct COLUMNA from myTable where columnB
=1) group by COLUMNA;