Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.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
Python/Sqlite3-从for循环列表中的项中选择语句_Python_Sql_Database_List_Sqlite - Fatal编程技术网

Python/Sqlite3-从for循环列表中的项中选择语句

Python/Sqlite3-从for循环列表中的项中选择语句,python,sql,database,list,sqlite,Python,Sql,Database,List,Sqlite,我有两个sqlite3数据库,其中有两个不同的表,我将数据库1中的表称为DB-A,数据库2中的表称为DB-B DB-A使用以下字段存储行:用户名、记录日期、选择 DB-B存储包含20个字段的行,从记录的日期开始,选择具有等效字段(格式略有不同) 格式差异示例:DB-A:日期记录格式为DD-MM-YYYY DB-B:日期记录格式为YYYY-MM-DD 格式差异示例:DB-A:所选内容包括空格和连字符, DB-B:所选内容均为小写,无空格或连字符 我目前正在从DB-a中选择*其中用户名=?(用户定义

我有两个sqlite3数据库,其中有两个不同的表,我将数据库1中的表称为DB-A,数据库2中的表称为DB-B

DB-A使用以下字段存储行:用户名、记录日期、选择

DB-B存储包含20个字段的行,从记录的日期开始,选择具有等效字段(格式略有不同)

格式差异示例:DB-A:日期记录格式为DD-MM-YYYY DB-B:日期记录格式为YYYY-MM-DD

格式差异示例:DB-A:所选内容包括空格和连字符, DB-B:所选内容均为小写,无空格或连字符

我目前正在从DB-a中选择*其中用户名=?(用户定义的用户名) and.fetchall()将其添加到一个列表:userList

然后我有一个带有以下伪代码的for循环

for item in userList:
    reformat item['Date Record']
    reformat item['Selection']
    SELECT * from DB-B:Table WHERE DB-B:Date Record = item['Date Record'] AND DB-B:Selection like item['Selection]

     execute logic here based on select.fetchall()
现在代码可以工作了,但是这需要花费很长时间(有时需要9个小时以上),因为我的用户列表最多可以有14405行,而DB-B有300多万行

有谁能提出更好的方法来解决这类问题,从而显著缩短执行时间

谢谢你的帮助,
已开发。

它们不存储在同一数据库中有特殊原因吗?感谢aws_学徒的快速响应,加入
将缓解整个情况。除了糟糕的结构之外,没有什么特别的原因(业余程序员)。考虑到记录的日期和字段中的选择格式不同,联接是否仍然有用?是的,您可以在数据库中转换和操作它们以满足您的需要,老实说,这将是最有效的way@Developed如果计划对设计进行更改,请确保始终以以下格式存储日期:YYYY-MM-DD@aws_apprentice谢谢,伙计,我用join得到了一个满意的解决方案。它们不存储在同一个数据库中有什么特别的原因吗?感谢aws_学徒的快速响应,加入
将缓解整个情况。除了糟糕的结构之外,没有什么特别的原因(业余程序员)。考虑到记录的日期和字段中的选择格式不同,联接是否仍然有用?是的,您可以在数据库中转换和操作它们以满足您的需要,老实说,这将是最有效的way@Developed如果计划对设计进行更改,请确保始终以以下格式存储日期:YYYY-MM-DD@aws_apprentice谢谢,伙计,我用join找到了一个满意的解决方案。