0

私はこのクエリを持っています:

 user = self.db.query("SELECT DISTINCT u.id, u.name, n.network_id, n.perm \ 
FROM users as u LEFT OUTER JOIN nets_permissions as n \ 
ON u.id = n.user_id WHERE u.id!=%s", int(usr_id))

列「perm」(許可) は int 値で、1、2、3、ecc のような値になります。またはヌル値。次のようなクエリが必要です。

 user = self.db.query("SELECT DISTINCT u.id, u.name, n.network_id, n.perm \
FROM users as u LEFT OUTER JOIN nets_permissions as n \
ON u.id = n.user_id WHERE u.id!=%s" AND n.perm!=3, int(usr_id))

したがって、perm=3 のレコードをクエリから削除したいと考えています。

この方法で perm=3 を使用してユーザーの ID を取得できると思いました。

self.lock_tables("read", ['nets_permissions'])
        admin = self.db.query("SELECT user_id FROM nets_permissions \
                               WHERE network_id=%s AND perm=3", nid)
        self.unlock_tables()

そして、私は書くことができました

 self.lock_tables("read", ['users as u', 'nets_permissions as n'])
   user = self.db.query("SELECT DISTINCT u.id, u.name, n.network_id, n.perm \
FROM users as u LEFT OUTER JOIN nets_permissions as n \
ON u.id = n.user_id WHERE u.id!=%s AND u.id!=%s", int(usr_id), int(admin))
            self.unlock_tables() 

しかし、これはうまくいきません....

何か案が?

ありがとうございました

4

1 に答える 1

2

これを試して

SELECT DISTINCT u.id, u.name, n.network_id, n.perm 
FROM users as u 
LEFT OUTER JOIN nets_permissions as n 
ON u.id = n.user_id 
AND n.perm<> 3 
WHERE u.id!=%s
于 2012-09-05T09:56:53.327 に答える