簡體   English   中英

MySQL不存在(查詢)或(查詢)

[英]Mysql WHERE NOT EXISTS (query) OR (query)

是否可以編寫一個查詢來檢查子查詢是否正確(而不是子查詢)?

SELECT  *
FROM    employees e
WHERE   NOT EXISTS
        (
        SELECT  null 
        FROM    eotm_dyn d
        WHERE   d.employeeID = e.id
        ) OR (select * FROM table c WHERE c.employeeID = e.id)

您的問題有點難以理解,但我想這就是您要的。 它將從employees表返回記錄,該記錄在表eotm_dyntable中沒有任何相關行。

SELECT  *
FROM    employees e
WHERE  e.id NOT IN
    (
        (SELECT  employeeID 
        FROM    eotm_dyn)
     UNION
        (SELECT employeeID 
        FROM table)
    )

是的,只需將該OR條件更改為另一個EXISTS表達式:

SELECT  *
FROM    employees e
WHERE   NOT EXISTS
           (
             SELECT  null 
             FROM    eotm_dyn d
             WHERE   d.employeeID = e.id
           ) 
    AND NOT EXISTS
           (
             select null
             FROM   table c
             WHERE  c.employeeID = e.id
           )

還猜測您的意圖。 這將檢查兩個子查詢的記錄都不存在。 如果您要檢查一個另一個,我不確定您的意思。

更新:試圖再次想象,也許您打算做一個OR EXISTS

SELECT  *
FROM    employees e
WHERE   NOT EXISTS
           (
             SELECT  null 
             FROM    eotm_dyn d
             WHERE   d.employeeID = e.id
           ) 
     OR EXISTS
           (
             select null
             FROM   table c
             WHERE  c.employeeID = e.id
           )

這會發現在記錄employees認為可能是沒有 eotm_dynARE table

暫無
暫無

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

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