Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在SQLite/Android中查询一个查询_Java_Android_Database_Sqlite_Android Sqlite - Fatal编程技术网

Java 在SQLite/Android中查询一个查询

Java 在SQLite/Android中查询一个查询,java,android,database,sqlite,android-sqlite,Java,Android,Database,Sqlite,Android Sqlite,我一直在MS Access中对一些查询进行建模,以便在将它们转换到我的Android应用程序之前,它们会显示我想要什么以及我想要它们的方式 然而,我的结果需要两个查询来获得最终结果——一个查询进行一系列连接,然后第二个查询将第一个查询连接到其他一些表。如果我能把它们结合起来,我会的,但我没有找到一种方法 无论如何,SQLite中有没有一种方法可以让我高效地完成这项工作 编辑:示例: Customers Table: ID, CustName Orders Table: ID, CustID, I

我一直在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;

我知道在这种情况下,你可以很容易地将这两者结合起来,但让我们假设它们足够复杂,所以你必须将它们分开。我想在使用SQLite的Android应用程序中获得Query2的结果。

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

选择从选择。。。作为问题1加入。。。; 无论如何,听起来和你想要的完全一样:

CREATE VIEW命令为预打包的SELECT语句指定名称。创建视图后,可以在另一个SELECT的FROM子句中使用它来代替表名

将视图查询1创建为 选择Orders.ID作为OrderID, Orders.CustID, Orders.ItemID, Customers.CustName 从命令 LEFT JOIN Customers ON Orders.CustID=Customers.ID;
... 听说过视图吗?听说过,但不知道它们是什么,也不知道如何在这里使用。你能举个例子说明你需要的查询吗?或者至少解释一下表模式,以及您想要从数据库中获取什么数据?我的查询量很大,所以我不知道是否可以在不使事情复杂化的情况下将所有内容关联起来。也许我可以试着做一些基本的例子来表达我的想法。如果一个视图是我认为它是什么,那么我认为它会起作用,假设它的工作原理有点像让Query1的结果成为一个临时表,然后我可以通过Query2访问它,就像它是任何其他表一样。但我不确定这是否正确,也不确定我是如何正确设置的。在Java/Android/SQLiteOpenHelper的上下文中,我如何做到这一点?就像执行任何其他语句一样执行此语句。因此,我将执行db.rawQueryCREATE VIEW Query1 AS SELECT Orders.ID AS OrderID,Orders.CustID,Orders.ItemID,来自左订单的Customers.CustName加入订单上的客户。CustID=Customers.ID;;然后db.rawQuerySELECT Query1.OrderID、Query1.CustID、Query1.ItemID、Query1.CustName、Items.ItemName从Query1中选择Query1.OrderID=Items.ID;;?第一个不是query.db.execSQL,那么可能是吗?