我想要一个通过组合 4 个表的结果。以前我使用 4 个不同的查询来提高性能,从加入表和从单个表查询开始。但是性能并没有什么改善。
后来我了解到 SQLite 将 join 语句转换为“where 子句”,我可以直接使用“Where”子句而不是 join,这样可以节省一些 CPU 时间。
但是“Where”子句的问题是,如果四个条件中的一个条件失败,则结果集为空。如果一个条件失败,我想要一个包含其余列(匹配其他条件)的表,而不是一个空表。有没有办法实现这一点?谢谢!
我想要一个通过组合 4 个表的结果。以前我使用 4 个不同的查询来提高性能,从加入表和从单个表查询开始。但是性能并没有什么改善。
后来我了解到 SQLite 将 join 语句转换为“where 子句”,我可以直接使用“Where”子句而不是 join,这样可以节省一些 CPU 时间。
但是“Where”子句的问题是,如果四个条件中的一个条件失败,则结果集为空。如果一个条件失败,我想要一个包含其余列(匹配其他条件)的表,而不是一个空表。有没有办法实现这一点?谢谢!
您是否考虑过使用 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,很难知道您尝试过什么。