【发布时间】:2012-07-09 23:49:54
【问题描述】:
我正在构建一个包含大量潜在输入的复杂搜索应用程序。每个输入都是可选的。我正在尝试以模块化方式构建查询。
假设我有两个不同的查询,每个查询都有独立的WHERE 条件:
SELECT * FROM t1 WHERE t1.c1 = x
SELECT * FROM t2 WHERE t2.c1 = y
我发现以下代码是有效的:
SELECT * FROM t1 INNER JOIN t2 ON t1.c2 = t2.c2 WHERE t1.c1= x AND t2.c1= y
但是,由于WHERE 条件最后组合在一起,因此很难以模块化方式实现这一点。所以,我尝试了这个:
SELECT * FROM t1 WHERE t1.c1 = x INNER JOIN ON t1.c2 = t2.c2 WHERE t2.c1 = y
但是,此代码无效。用独立的WHERE 子句连接任意数量的表的最佳方法是什么?
【问题讨论】: