Python& Sqlite3 - 子集一个表然后加入另外两个表

时间:2017-01-27 18:21:45

标签: python sqlite

我正在使用python和sqlite3。我有3张桌子:

表1: Col A

表2: Col A | Col B

表3: Col 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 = Table2.A
      LEFT JOIN Table3 ON table2.B = Table3.B')

但是我收到了这个错误:OperationalError: near "AS": syntax error

结果应该是500k行,并且在所有3个表中找到所有列。  如果我的任何措辞难以理解,请道歉。

1 个答案:

答案 0 :(得分:2)

正如@furas所说,LIMIT必须在完整陈述的末尾。

您实际想要做的事情很可能是子查询,例如:

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