你可以在where子句中有多个子查询吗?
问题描述:
我没有一个这样的例子,但我只是想知道,如果这样的事情是在任何情况下有效:你可以在where子句中有多个子查询吗?
SELECT somefield
FROM sometable
WHERE something1 IN (SELECT somefield2 FROM sometable2)
AND something2 IN (SELECT somefield3 FROM sometable3)
答
是。您的语法需要修正:
SELECT somefield
FROM sometable
WHERE something1 IN (SELECT somefield2 FROM sometable2)
AND something2 IN (SELECT somefield3 FROM sometable3)
答
在一个字 - 是的。无论where
条款是否具有in
条件,您都可以在条件中创建尽可能多的条件。
但请记住一件事。虽然可以尽可能多地存在条件/子查询,但您可能会遇到性能问题。 – Leptonator
@Leptonator视图不会影响性能,除非它们在大多数RDBMS中无法实现 –
@ThomasG - 刚刚删除了对视图的引用。 – Leptonator