Table1
是虛擬表,其中fts4
和TABLE2
是normal table
。從QUERY2SQLite Android在FTS4上的加入操作
android.database.sqlite
查詢1(工程)
SELECT * FROM TABLE1 LEFT OUTER JOIN TABLE2 ON TABLE1.id=TABLE2.id WHERE TABLE1 MATCH 'sometext' LIMIT %d,%d
查詢2(不工作)
SELECT * FROM TABLE2 LEFT OUTER JOIN TABLE1 ON TABLE1.id=TABLE2.id WHERE TABLE1 MATCH 'sometext' LIMIT %d,%d
錯誤。 SQLiteEx ception:無法使用功能MATCH 在請求的上下文(代碼1)
從這個好像FTS TABL必須先在LEFT OUTER JOIN。爲什麼會這樣呢?在應用WHERE子句之前首先發生連接。所以如果它不適用於表類型不匹配,我假設它不會與查詢1一起工作。任何人都請解釋一下。內部發生了什麼?此外任何鏈接參考網站將不勝感激解釋這一點。
爲什麼你想加入TABLE2上TABLE2?此外,MATCH用於匹配列,不匹配表。 – BladeCoder
這是一個錯字。我編輯它。抱歉。也可以按照每個sqlite doc表格指定左側。在這種情況下,它會嘗試匹配所有列。 – varuog