SQLite3数据库查询优化

时间:2012-04-30 17:31:08

标签: join sqlite query-optimization

我希望通过组合4个表来获得结果。以前我使用4个不同的查询并提高性能,从加入表和从单个表查询开始。但是表现没有任何改善。

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

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

1 个答案:

答案 0 :(得分:0)

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

例如

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

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

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

相关问题