Python&;Sqlite3-子集一个表,然后连接到另外两个表
我正在使用python和sqlite3。我有三张桌子: 表1: 科拉 表2: A栏| B栏 表3: B列 我想要表1中的前500k行和表2中具有表3中匹配行的任何匹配行。我该怎么做?我是这么想的Python&;Sqlite3-子集一个表,然后连接到另外两个表,python,sqlite,Python,Sqlite,我正在使用python和sqlite3。我有三张桌子: 表1: 科拉 表2: A栏| B栏 表3: B列 我想要表1中的前500k行和表2中具有表3中匹配行的任何匹配行。我该怎么做?我是这么想的 conn = sqlite3.connect('database.sqlite') conn.execute('SELECT * FROM Table1 LIMIT 500000 AS sample LEFT JOIN Table2 ON sample.A = Ta
conn = sqlite3.connect('database.sqlite')
conn.execute('SELECT * FROM Table1 LIMIT 500000 AS sample
LEFT JOIN Table2
ON sample.A = Table2.A
LEFT JOIN Table3 ON table2.B = Table3.B')
但是我得到了这个错误:OperationalError:near“AS”:语法错误
结果应该是500k行,所有列都可以在所有3个表中找到。
如果我的任何措辞难以理解,请道歉 正如@furas所说,
限制必须在完整语句的末尾
您实际上想要做的很可能是一个子查询,如:
SELECT * FROM (SELECT * FROM Table1 LIMIT 500000) AS sample
LEFT JOIN Table2
ON sample.A = Table2.A
LEFT JOIN Table3 ON table2.B = Table3.B
你是对的,先这样做,然后看看结果。在我看来,左联也必须起作用。但是,请确保您有公共字段或属性来进行比较并进行联接。您的尝试有什么错误或不希望的结果?这是我得到的:OperationalError:near“AS”:语法错误限制必须在末尾。或者您必须在()
内创建子查询。