SQl group by以获取默认值

SQl group by以获取默认值,sql,oracle,Sql,Oracle,我有两张桌子,人和地址。一个人可以有多个地址。地址表上有一个is_默认标志。对于每个人,必须选择一个地址作为默认地址,我需要列出一个没有设置默认标志的人的列表。只能将一个地址设置为默认地址 下面是我编写的查询,它没有提取正确的数据 SELECT * FROM Person p WHERE p.pid IN (select a.pid from Address a where a.is_default <> -1 group by a.pid) 无法使用不存在且相关的子查询: SEL

我有两张桌子,人和地址。一个人可以有多个地址。地址表上有一个is_默认标志。对于每个人,必须选择一个地址作为默认地址,我需要列出一个没有设置默认标志的人的列表。只能将一个地址设置为默认地址

下面是我编写的查询,它没有提取正确的数据

SELECT * FROM Person p WHERE p.pid IN (select a.pid from Address a
where a.is_default <> -1 group by a.pid)
无法使用不存在且相关的子查询:

SELECT *
FROM Person p
WHERE NOT EXISTS(SELECT * FROM Address a 
                 WHERE a.is_default = 1 AND p.pid = a.pid)
无法使用不存在且相关的子查询:

SELECT *
FROM Person p
WHERE NOT EXISTS(SELECT * FROM Address a 
                 WHERE a.is_default = 1 AND p.pid = a.pid)