-1

私はこのコードを持っています:

# 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()

しかし、トルネード画面で次のエラーが表示されます。

ファイル "./wsn.py"、行 571、get where nets_permissions.network_id=%s and nets_permissions.perm=3)"、netid) raise errorclass、errorvalue OperationalError: (1100、"テーブル 'users' はロックされていませんでしたロックテーブル」)

エラーはどこにありますか?

4

1 に答える 1

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()
于 2013-03-21T10:57:50.860 に答える