簡體   English   中英

如何從表中排除行?

[英]How to exclude rows from table?

我有一個查詢,但我需要排除某些行。 我的查詢:

SELECT eo, ac, tc, ac_05
  FROM eng_effect e, eng_tc t, task_c c
 WHERE e.eo = t.eo
   AND t.tc = c.tc
   AND e.ac <> c.ac

這很好,但我需要排除eng_tc表中的eotc的組合。

例如,我的查詢返回以下值:

環氧乙烷 空調 技術委員會 AC_05
1A-檢查7 科博 1A - 767 凱亞
1A-檢查7 凱亞 1A - 767 韓國能源中心
1A-檢查7 韓國能源中心 1A - 767 科博

但是這些行不應該在預期的結果中,因為在eng_tc表中對應的tc

因為eo = '1A-CHECK7''1A - 767'

我會這樣寫查詢:

select
    eo,
    ac,
    tc,
    ac_05
from
    eng_effect e
    inner join task_c c on c.tc = t.tc and c.ac <> e.ac
    left join eng_tc t on t.eo = e.eo and t.tc = e.tc
where
    t.eo is null
;

我重寫了您的查詢以提高可讀性,因為您使用的是相當老式的 sql。我為 t 創建了一個左連接而不是內部連接。 然后,我添加了WHERE子句,以使用其中一個鍵列來過濾 t 中沒有相應記錄的任何記錄的結果集——也可以使用 tc。

暫無
暫無

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

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