Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.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
Php 将不同表上的记录与SQLite关联的最佳方法_Php_Database_Sqlite_Optimization - Fatal编程技术网

Php 将不同表上的记录与SQLite关联的最佳方法

Php 将不同表上的记录与SQLite关联的最佳方法,php,database,sqlite,optimization,Php,Database,Sqlite,Optimization,我正在用PHP开发一个开源下载管理器,这是我第一次处理数据库,我想知道从两个表中检索多条记录的最佳(优化)方法是什么,如下所示: 表A是下载的主要列表,每个下载都有一个“id”。 表B包含上表中每次下载使用的连接范围。具有“开始”、“结束”、“字节”和“下载ID”。每次下载都有一个或多个使用“downloadid”关联的范围 我只想以最优化的方式检索下载列表及其范围。从表a中选择a.id、a.col1、a.col2、b.col1、b.col2,在a.id=b.dataloadid中选择a.id=

我正在用PHP开发一个开源下载管理器,这是我第一次处理数据库,我想知道从两个表中检索多条记录的最佳(优化)方法是什么,如下所示:

表A是下载的主要列表,每个下载都有一个“id”。 表B包含上表中每次下载使用的连接范围。具有“开始”、“结束”、“字节”和“下载ID”。每次下载都有一个或多个使用“downloadid”关联的范围


我只想以最优化的方式检索下载列表及其范围。

从表a中选择a.id、a.col1、a.col2、b.col1、b.col2,在a.id=b.dataloadid中选择a.id=order by b.start

当然,您应该使用正在查找的dataloadid替换。
这就是您要找的吗?

我只是不理解“where”部分:)我认为您可以去掉“where a.id=”部分,因为我看不到您设置约束的任何地方。你没有说一个具体的标准,你正在寻找,所以这将给你一个所有下载的联合列表。如果我们在这里有一些测试输入/预期输出,它会更有用,但是如果您想要tableA中的ID和tableB的所有详细信息,那么最好只说select downloadid as ID,start,end,tableB中的字节。我假设tableA中有比给定的更多的细节,但我只是想说出来。再看一遍之后,我会说您确实需要一个连接(您没有概述tableA的内容,但暗示还有其他数据)。我不确定你的“where”条款是什么,因为你没有列出任何条件。也许在TableA中有一个UserID字段(链接回用户表),因此您可以执行“where UserID=1”来选择UserID为1的用户执行的所有下载。如果开始/结束是日期时间值,则可能会排除在特定时间之前发生的项目。如文中所述,条件是什么并不明确。一般来说可能会有帮助。