简体   繁体   English

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

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

Is it possible to write one query that checks if either subqueries are correct as opposed to one? 是否可以编写一个查询来检查子查询是否正确(而不是子查询)?

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)

You question is a little hard to understand but I'm guessing this is what You are asking for. 您的问题有点难以理解,但我想这就是您要的。 It will return records from employees table that doesn't have any related rows in tables eotm_dyn and table . 它将从employees表返回记录,该记录在表eotm_dyntable中没有任何相关行。

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

Yes, just change that OR condition to another EXISTS expression: 是的,只需将该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
           )

Also guessing as to your intention. 还猜测您的意图。 This will check that the record does not exist for BOTH sub-queries. 这将检查两个子查询的记录都不存在。 I'm not sure what you mean if you mean to check one OR the other. 如果您要检查一个另一个,我不确定您的意思。

UPDATE: Trying to imagine again, perhaps you meant to do a OR EXISTS : 更新:试图再次想象,也许您打算做一个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
           )

This will find records in employees that are either NOT in eotm_dyn or ARE in table . 这会发现在记录employees认为可能是没有 eotm_dynARE table

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM