2012-04-30 96 views
0

我想結合4個表的結果。以前,我使用4種不同的查詢來提高性能,從加入表格和從單個表格查詢開始。但是性能沒有改善。SQLite3數據庫查詢優化

我後來得知SQLite將連接語句轉換爲「where子句」,我可以直接使用「Where」子句而不是連接來節省一些CPU時間。

但「Where」子句的問題是如果四個條件中有一個條件失敗,則結果集爲空。我想要一個表格,其餘的列(與其他條件匹配)填充,如果一個條件失敗,不是空表。有沒有辦法實現這一目標?謝謝!

+0

你可以發佈SQL語句,也可能是四個表的模式嗎? – 2012-04-30 18:25:01

回答

0

你有沒有考慮過使用LEFT OUTER JOIN?

例如

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

在這個例子中,如果有沒有「catalogsales」,那麼它仍然會從「左」表,在這種情況下是「客戶」返回數據的任何匹配的行

沒有示例SQL,很難知道你嘗試過了什麼。