我有这段代码:
# Retreive the users that can obtain permission on the network except the admin
self.lock_tables("read", ['nets_permissions as n', 'users as u'])
usrs = self.db.query("SELECT distinct u.id FROM users as u \
left outer join nets_permissions as n on u.id = n.user_id \
where u.id not in \
(select users.id from users left outer join nets_permissions \
on users.id = nets_permissions.user_id \
where nets_permissions.network_id=%s and nets_permissions.perm=3)", netid)
self.unlock_tables()
但是我在Tornado屏幕中获得了这个错误:
文件“./wsn.py”,第571行,在get中 其中nets_permissions.network_id =%s和nets_permissions.perm = 3)“,netid) raise errorclass,errorvalue OperationalError:(1100,“表'用户'没有用LOCK TABLES锁定”)
错误在哪里?
答案 0 :(得分:0)
解决方案是:
# Retreive the users that can obtain permission on the network except the admin
self.lock_tables("read", ['nets_permissions as n', 'users as u', 'nets_permissions as m', 'users as v'])
usrs = self.db.query("SELECT distinct u.id FROM users as u \
left outer join nets_permissions as n on u.id = n.user_id \
where u.id not in \
(select v.id from users as v left outer join nets_permissions as m \
on v.id = m.user_id \
where m.network_id=%s and m.perm=3)", netid)
self.unlock_tables()