是否可以在SQL EXISTS()
内编写多个查询?
就像这个例子一样
SELECT
EXISTS (SELECT a FROM at WHERE X = :X;
SELECT b FROM bt WHERE Y = :Y;
SELECT C FROM ct WHERE Z = :Z;
)
如果有可能,这是检查多个表中元素是否存在的最佳方法?或使用UNION ALL
或JOIN
会更好吗?
答案 0 :(得分:1)
使用OR
:
EXISTS (SELECT a FROM at WHERE X = :X) OR
EXISTS (SELECT b FROM bt WHERE Y = :Y) OR
EXISTS (SELECT C FROM ct WHERE Z = :Z)
这通常位于WHERE
或CASE
,而不是SELECT
。
您可以使用UNION ALL
,但这通常会更有效。