[英]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
表中的eo
和tc
的組合。
例如,我的查詢返回以下值:
環氧乙烷 | 空調 | 技術委員會 | 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.