我是 SQL 新手。我有两个数据库, user 和 item (name, country, userId) 。 我想获取用户 ID,该用户的所有项目都属于国家代码 US 和 CA。
*用户可以拥有多个项目。
有人可以帮我查询 sql 吗?谢谢!!
答案 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