从另一个表中选择一个表的否定以及oracle的主表sql查询中的数据

Posted

技术标签:

【中文标题】从另一个表中选择一个表的否定以及oracle的主表sql查询中的数据【英文标题】:Select Negation of one table from another along with data in master table sql query for oracle 【发布时间】:2018-05-15 12:25:57 【问题描述】:

我遇到了一个问题。我的 oracle 数据库中有 3 个表。 第一个表包含所有注册员工:ID、FNAME、LNAME 第二个表包含所有员工(已注册 + 未注册):- ID、FNAME、LNAME 第三个表是一个主表,其中包含员工的所有详细信息以及地址。 ID 在所有 3 个表中都是通用的。

这里我的要求是编写一个查询,它将显示所有未注册的员工及其地址详细信息。

在所有必须忽略的表中,一些 ID 也为空。

表 1 - 注册用户 表 2 - 已注册+未注册 表 3 - 包含附加信息的主表

要求:- 为未注册用户选择 ID、姓名、地址。

查询将比解释更有帮助。

谢谢,

【问题讨论】:

提示:左连接或不存在。 嗨,Raymond,请您检查一下需求,如果可能的话,请让我知道这个问题。谢谢。 【参考方案1】:

我认为 not existsnot in 可以满足您的需求:

select m.*
from masters m
where not exists (select 1
                  from registered r
                  where r.id = m.id
                 );

【讨论】:

好的,我的要求是选择所有未注册的员工。 AllEmployeeTable(Registered+Unregisterd) 减去 RegisterdUser。这会给我所有未注册的用户。现在对于所有未注册的用户,我必须从第三张表中选择地址。

以上是关于从另一个表中选择一个表的否定以及oracle的主表sql查询中的数据的主要内容,如果未能解决你的问题,请参考以下文章

在线等!!如何通过主表及其主键查询到与之关联的表及关联字段?数据库为db2

从另一个表中选择列中的相似值并在主表中使用另一个表值

SQL中根据表的顺序选择数据

MYSQL从另一个表更新数据,如果存在,否则插入[重复]

MySql主从表的主表删除数据

oracle约束