0

我想要一个通过组合 4 个表的结果。以前我使用 4 个不同的查询来提高性能,从加入表和从单个表查询开始。但是性能并没有什么改善。

后来我了解到 SQLite 将 join 语句转换为“where 子句”,我可以直接使用“Where”子句而不是 join,这样可以节省一些 CPU 时间。

但是“Where”子句的问题是,如果四个条件中的一个条件失败,则结果集为空。如果一个条件失败,我想要一个包含其余列(匹配其他条件)的表,而不是一个空表。有没有办法实现这一点?谢谢!

4

1 回答 1

0

您是否考虑过使用 LEFT OUTER JOIN ?

例如

SELECT Customers.AcctNumber, Customers.Custname, catalogsales.InvoiceNo 
FROM Customers 
LEFT OUTER JOIN catalogsales ON Customers.Acctnumber = catalogsales.AcctNumber

在这个例子中,如果 "catalogsales" 中没有任何匹配的行,那么它仍然会返回 "left" 表中的数据,在这种情况下是 "Customers"

如果没有示例 SQL,很难知道您尝试过什么。

于 2012-08-13T05:52:52.600 回答