python - 包含空值列的 MySQL 查询

标签 python mysql null tornado

我有这个查询:

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

但这不起作用......

有什么想法吗?

谢谢

最佳答案

试试这个

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

关于python - 包含空值列的 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12278787/

相关文章:

Python issubset 与在集合中查找元素的性能比较

mysql - 安装 Mysql2 gem- 10.6 服务器时出错

mysql - 有没有适合 MySQL 的好工具可以帮助我优化查询和索引设置?

Python:根据其他数据帧的条件创建列

python - 可变分辨率 Van der Corput 序列

python - 如何计算 PyTorch 张量的第二维中 1's and 0' 的数量?

php - 为什么 SQL 查询返回 0?实际查询是什么?

Android 从 Gallery NullPointerException 中选择图像?

pointers - 检查指针是否指向 Nil Slice

mysql - MySQL 中的 Left Join 返回空值,但它们不应该返回空值