在 NOT IN 中使用 UNION

kun*_*nde 1 mysql sql union subquery notin

我正在尝试使用NOT IN条件进行查询。如果我使用子查询,我没有问题,但是当我尝试使用UNION连接来自两个表的结果时,出现错误。

这就是我正在做的:

SELECT *
FROM users
WHERE id NOT IN( 
    (
        SELECT DISTINCT(user_id) AS id
        FROM users_table_1
    )
    UNION
    (
        SELECT DISTINCT(user_id) AS id
        FROM users_table_2
    )   
)
Run Code Online (Sandbox Code Playgroud)

有没有办法使用子查询获得我想要的东西?

Yas*_*aev 5

我认为您的代码中存在语法问题。你试图把UNION 里面的子查询?

SELECT *
FROM users
WHERE id NOT IN( 
        SELECT user_id AS id
        FROM users_table_1
        UNION
        SELECT user_id
        FROM users_table_2 
)
Run Code Online (Sandbox Code Playgroud)

DISTINCT关键字是多余的(见@ ypercube的评论)。