[英]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.