SQLite中查询的查询 / Android

Query of a query in SQLite / Android

我一直在 MS Access 中对一些查询进行建模,以便在我将它们转换到我的 Android 应用程序之前,它们显示我想要什么以及我想要它们的方式。

但是,我的结果需要两个查询才能获得最终结果——一个查询执行一组联接,然后第二个查询将第一个查询联接到一些其他表。如果我可以将它们结合起来,我会但没有找到办法。

无论如何,SQLite 中有没有一种方法可以让我高效地执行此操作?

编辑:示例:

Customers Table: ID, CustName
Orders Table: ID, CustID, ItemID
Items Table: ID, ItemName

Query1: SELECT Orders.ID AS OrderID, Orders.CustID, Orders.ItemID, Customers.CustName
FROM Orders LEFT JOIN Customers ON Orders.CustID = Customers.ID;

Query2: SELECT Query1.OrderID, Query1.CustID, Query1.ItemID, Query1.CustName, Items.ItemName
FROM Query1 LEFT JOIN Items ON Query1.ItemID = Items.ID;

我知道在这种情况下,您可以轻松地将这两者结合起来,但我们假设它们足够复杂,因此您必须将它们分开。我想要一种在我的 Android 应用程序(使用 SQLite)中获取 Query2 结果的方法。

每个查询,无论它有多复杂,都可以用作另一个查询的 FROM 子句中的子查询:

SELECT ... FROM (SELECT ...) AS Query1 JOIN ...;

无论如何,CREATE VIEW 听起来完全符合您的要求:

The CREATE VIEW command assigns a name to a pre-packaged SELECT statement. Once the view is created, it can be used in the FROM clause of another SELECT in place of a table name.

CREATE VIEW Query1 AS
SELECT Orders.ID AS OrderID,
       Orders.CustID,
       Orders.ItemID,
       Customers.CustName
FROM Orders
LEFT JOIN Customers ON Orders.CustID = Customers.ID;