【问题标题】:SQLite3 Database Query OptimizationSQLite3 数据库查询优化
【发布时间】:2012-04-30 17:31:08
【问题描述】:

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

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

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

【问题讨论】:

  • 你能发布SQL语句,也许还有四个表的架构?

标签: join sqlite query-optimization


【解决方案1】:

您是否考虑过使用 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,很难知道您尝试了什么。

【讨论】:

    猜你喜欢
    • 2011-02-27
    • 1970-01-01
    • 2013-04-19
    • 1970-01-01
    • 2019-03-30
    • 2017-01-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多