簡體   English   中英

SQL選擇查詢排除某些值

[英]sql select query excluding certain values

要求是將ItemA和ItemE從搜索中排除,因為它們在columnB中包含值1。

在此處輸入圖片說明

最終結果應該是這樣的

在此處輸入圖片說明

我嘗試過SELECT * FROM my_table WHERE ColumnB not like '1' ,但這只是刪除具有1的行,我希望將整個ITEM A / ITEM E刪除為包含值1。

嘗試:

SELECT *
FROM tablee
WHERE ColumnA NOT IN (
  SELECT columnA FROM tablee
  WHERE columnB = 1
);

要么

SELECT *
FROM tablee t1
WHERE NOT EXISTS(
  SELECT 1 FROM tablee t2
  WHERE t2.columnB = 1 and t1.columnA = t2.columnA
);

首先,我們進行子查詢,以查找ColumnB ='1'的行。 然后,將子查詢與匹配的ColumnA名稱連接到主表。 現在,在ColumnB中具有不同行並帶有“ 1”的項目現在將在那里具有一個值,由於左連接,其他行將僅具有NULL。 然后,我們使用一個位置僅查找沒有匹配項的位置。

SELECT main.* from my_table AS main
LEFT JOIN (
    SELECT * FROM my_table 
    WHERE ColumnB = '1' 
    ) AS remove
ON remove.ColumnA = main.ColumnA
WHERE remove.ColumnB != '1'

要了解有關sql的更多信息,請通過w3schools入門

謝謝您的幫助。 我想出了解決方案

select * 
from test 
where columnA not in  (select columnA from test where ColumnB = 1 )

http://sqlfiddle.com/#!4/e0f07/2

嘗試這個

select * from my_table where ColumnA!=ItemA and ColumnA!=ItemE;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM