簡體   English   中英

如何從MySQL中的查詢中排除特定行

[英]How to exclude specific row from query in MySql

我有一個下面提到的表:

ID      ID_2        Var1
1       L-1         ADD
2       L-1         DER
3       L-2         ADD
4       L-2         DER
5       L-3         DER
5       L-4         DER

我只想獲取那些我們沒有對應於ID_2值不等於ADD唯一ID的行。

要求的輸出:

ID      ID_2        Var1
5       L-3         DER
5       L-4         DER

嘗試這個:

select ID, ID_2, Var1
from
(   select ID, ID_2, Var1
    from tablename
    group by ID, ID_2, Var
    having count(ID) = 1 ) somedata
where not Var1 = 'ADD'

創建一個子表,該子表僅獲取在Var1中具有“添加”的ID_2。 然后將其重新加入主表(不包括所有匹配項)。

select ID, ID_2, Var1
from table join
(select id_2
from table
where var1='ADD'
) a 
on table.ID_2<>a.ID_2

您可以按照以下方式在一個簡單的查詢中進行操作:

SELECT d1.ID, d1.ID_2, d1.Var1
FROM data AS d1
LEFT JOIN data AS d2 ON d1.ID = d2.ID
WHERE d1.Var1 <> 'ADD'
GROUP BY d1.ID_2
HAVING COUNT(d1.ID) > 1;

參見DEMO

暫無
暫無

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

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