查询获取唯一用户 ID

时间:2021-06-04 10:46:49

标签: sql

我是 SQL 新手。我有两个数据库, user 和 item (name, country, userId) 。 我想获取用户 ID,该用户的所有项目都属于国家代码 US 和 CA。

*用户可以拥有多个项目。

有人可以帮我查询 sql 吗?谢谢!!

1 个答案:

答案 0 :(得分:0)

您可以选择国家不是“US”或“CA”的条目,并获取那里不存在的用户。

-- This part is for having some test data

with users_t (userid, itemid) as(
    select 'USER1', 'ITEM1' from dual union all
    select 'USER2', 'ITEM2' from dual union all
    select 'USER3', 'ITEM3' from dual),
items_t (name, country, userid) as(
    select 'NAME1', 'US', 'USER1' from dual union all
    select 'NAME2', 'ESP', 'USER1' from dual union all
    select 'NAME1', 'US', 'USER2' from dual union all
    select 'NAME1', 'CA', 'USER2' from dual union all
    select 'NAME1', 'ESP', 'USER3' from dual)

--This is the actual query

SELECT
    userid
FROM
    users_t u
WHERE
    NOT EXISTS (
        SELECT
            1
        FROM
            items_t i
        WHERE
            i.userid = u.userid
            and i. country not in ('US', 'CA')
    );

输出:

USERID
------
USER2