我正在尝试通过webpy框架进行Sqlite3查询。查询在SQLiteManager中有效。但是使用web.db我得到“sqlite3.OperationalError没有这样的列a.id”。 这是一个webpy错误吗?
import web
db = web.database(dbn='sqlite', db='data/feed.db')
account = 1
query='''
SELECT a.id, a.url, a.title, a.description, a.account_count, b.id subscribed FROM
(SELECT feed.id, feed.url, feed.title, feed.description, count(account_feed.id) account_count
FROM feed
LEFT OUTER JOIN account_feed
ON feed.id=account_feed.feed_id AND feed.actived=1
GROUP BY feed.id, feed.url, feed.title, feed.description
ORDER BY count(account_feed.id) DESC, feed.id DESC)
a LEFT OUTER JOIN account_feed b ON a.id=b.feed_id AND b.account_id=$account'''
return list(self._db.query(query,vars=locals()))
回溯就在这里:http://pastebin.com/pUA7zB9H
答案 0 :(得分:0)
不确定为什么你会收到错误“没有这样的列a.id”,但是 它可能会有所帮助
account
使用参数化参数($ per per-hangover?)query = '''
SELECT a.id, a.url, a.title, a.description, a.account_count, b.id subscribed
FROM ( {q} ) a
LEFT OUTER JOIN account_feed b
ON a.id=b.feed_id
AND b.account_id = ?'''.format(q=query)
args=[account]
cursor.execute(query,args)