私は sqlite データベースを持っており、現在、必要なデータを検索して抽出するためのコードを書いています。ここで私はトラブルに巻き込まれました:
conn = sqlite3.connect("ensembl.db")
cur = conn.cursor()
...
cur.execute('SELECT b.chr,(b.start-e.start) as StartD, (b.end-e.end) as EndD,b.tcon,b.tname,b.gname FROM ensembl e blast b WHERE b.tcon=? AND b.tname=e.tname AND b.gname=e.gname AND b.chr=e.chr',tcon)
print cur.fetchone()
これはエラーを返します:
File "data.py", line 12, in <module>
cur.execute('SELECT b.chr,(b.start-e.start) as StartD, (b.end-e.end) as EndD,b.tcon,b.tname,b.gname FROM ensembl e blast b WHERE b.tcon=? AND b.tname=e.tname AND b.gname=e.gname AND b.chr=e.chr',tcon)
sqlite3.OperationalError: near "blast": syntax error
Pythonが参照しているこの構文エラーが何なのかわかりません-以前にsqlite&pythonでこれに似た(確かに、それほど複雑ではない)クエリを実行しましたが、それらは機能しました。私は他のさまざまな方法を試しましたが、どれもうまくいかなかったようです...本当に単純なものが欠けていますか?
また、別の質問-これが機能したら、結果から列を個別に抽出する最良の方法は何ですか? 以前に cur.fetchone() を使用して、1 つのものだけを返すクエリの単一の変数に割り当てましたが、複数のものを返すクエリで機能するかどうかはわかりません。