Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 从一个表中选择第二个表中不可用的行_Sql_Oracle - Fatal编程技术网

Sql 从一个表中选择第二个表中不可用的行

Sql 从一个表中选择第二个表中不可用的行,sql,oracle,Sql,Oracle,我需要一个查询,在该查询中,我可以选择一个表中不在另一个表中的记录 我有两张桌子 TABLE 1: LOGS TABLE 2: MASTER LIST 日志=记录日志 主列表=所有注册名称的列表 例如: LOGS HOST | USER | NAME ================== 1 | A | A1 1 | A | A1 1 | A | A1 1 | A | D1 MASTER HOST | USER | NAME ========

我需要一个查询,在该查询中,我可以选择一个表中不在另一个表中的记录

我有两张桌子

TABLE 1: LOGS
TABLE 2: MASTER LIST
日志=记录日志
主列表=所有注册名称的列表

例如:

LOGS
HOST | USER | NAME
==================
1    | A    | A1 
1    | A    | A1
1    | A    | A1
1    | A    | D1

MASTER
HOST | USER | NAME
===================
1    | A    | A1
1    | A    | B1
1    | A    | C1
结果应该是:

HOST | USER | NAME
==================
1    | A    | D1

选择表2:主列表中未包含名称的行。

只需像这样使用
左连接即可:

   SELECT L.* 
     FROM Logs L
LEFT JOIN Master M
       ON L.Name = M.Name
     WHERE M.Name IS NULL
结果:

╔══════╦══════╦══════╗
║ HOST ║ USER ║ NAME ║
╠══════╬══════╬══════╣
║    1 ║ A    ║ D1   ║
╚══════╩══════╩══════╝
此处
其中M.Name为空
排除两个表中的所有公共记录

看见
select * from table1 
where not exists
(
  select host, user, name
  from table2
  where table2.host = table1.host and 
        table2.user = table1.user and 
        table2.name = table1.name
)