[英]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_dyn
和table
中没有任何相关行。
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_dyn
或ARE table
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.