排除工作人员

Chud37

我有一张user桌子:

id, userID, name, postcode
2   99      Bob   AAA BBB
3   8384    Jim   CCC DDD

我有一张user-keys桌子:

id, userID, keyID, val
1   435     3      1
2   773     8      0
3   99      2      1
4   99      5      1
5   99      2      1

其中keyID=2表示是职员。我想从user不是工作人员的表中获取所有用户 ID 到目前为止,我有以下 SQL:

SELECT u.`userID` FROM `users` u
WHERE u.`userID` IS NOT NULL AND u.`userID` != 0;

但是,这并不排除在user-keys表中具有keyID值为 2 和val1的条目的所有用户

我该如何执行此操作?

编辑:我忘了状态,任何用户可以在多个条目user-keys表,我只想要一个列表userIDuser表中,所以我真的很希望从上表的结果只会是8384。

蒂姆·比格莱森

您可以尝试以下连接查询:

SELECT
    t1.userID
FROM user t1
LEFT JOIN
(
    SELECT DISTINCT userID, keyID        -- you don't need DISTINCT here, but it may help
    FROM `user-keys`                     -- and it makes the logic a bit clearer
    WHERE keyID = 2
) t2
    ON t1.userID = t2.userID
WHERE t2.userID IS NULL

这里所用的逻辑是,我们保留从所有用户user表谁不会出现在user-keyskeyID2个,或谁不会出现在user-keys所有。

按照下面的链接查看 MySQL 中的演示。请注意,在某些数据库中user-keys,表名不是有效的,需要进行转义(我在上面使用反引号进行了转义,SQL Server 将使用[user-keys]等)。

雷克斯特

更新:

如果只想找工作人员,那么逻辑就简单多了。在这种情况下,我们可以INNER JOIN将两个表放在一起并检查每个用户的状态:

SELECT DISTINCT
    t1.userID
FROM user t1
INNER JOIN `user-keys` t2
    ON t1.userID = t2.userID
WHERE t2.keyID = 2

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

后台工作人员冻结WPF

来自分类Dev

DynamicSupervisors的工作人员名称

来自分类Dev

后台工作人员中的ShowDialog

来自分类Dev

停止后台工作人员

来自分类Dev

我可以在工作人员内部获取我的sidekiq工作人员的ID吗?

来自分类Dev

由工作人员引起的Heroku Web工作人员超时

来自分类Dev

从专门的工作人员访问共享工作人员

来自分类Dev

对Heroku生产站点上的Sidekiq工作人员进行故障排除

来自分类Dev

如何正确取消永远工作的后台工作人员?

来自分类Dev

分布式工作人员的体系结构

来自分类Dev

与工作人员“线程”等效的asyncio.Queues

来自分类Dev

如何根据队列长度扩展工作人员角色

来自分类Dev

通过网站与工作人员角色进行沟通

来自分类Dev

Django Gunicorn工作人员无法启动

来自分类Dev

工作人员未运行Python + Django + Celery + Redis

来自分类Dev

通过AKKA中的工作人员检索国家演员

来自分类Dev

渲染HTML后,Puma“终止超时的工作人员”

来自分类Dev

如何实现与UI无关的后台工作人员任务

来自分类Dev

与后台工作人员之间传递价值

来自分类Dev

在后台工作人员中使用进度栏

来自分类Dev

慢的Azure工作人员角色响应时间

来自分类Dev

简化后台工作人员的匿名方法

来自分类Dev

使用while循环取消后台工作人员

来自分类Dev

Heroku:如何扩展到多个工作人员

来自分类Dev

可以即时添加工作人员吗?

来自分类Dev

是否可以按顺序启动后台工作人员?

来自分类Dev

所有工作人员的重叠日期范围

来自分类Dev

风暴集群中工作人员的配置

来自分类Dev

远程工作人员通过Azure Active Directory登录