从表Y中过滤表X中的值

Ben*_*Ben 2 mysql sql

我正在努力实现的简化示例:

表格1

FirstName | LastName | Age | Eye Color |
---------------------------------------|
John      | Dunbar   | 30  | Blue      |
Jane      | Austin   | 98  | Green     |
John      | Dunbar   | 21  | Red       |
John      | Dunbar   | 23  | Brown     |
Mr        | T        | ...             |
One       | More     | ...             |
Run Code Online (Sandbox Code Playgroud)

表2

FirstName | LastName |
---------------------|
John      | Dunbar   |
Mr        | T        | 
Run Code Online (Sandbox Code Playgroud)

所以,我想创建的是表1,没有所有记录匹配表2.换句话说,表3:

FirstName | LastName | Age | Eye Color |
---------------------------------------|
Jane      | Austin   | 98  | Green     |
One       | More     | ...             |
Run Code Online (Sandbox Code Playgroud)

我不确定到达那里最好的"选择"是什么.我猜测"加入"的一些聪明用法,但不确定......

Mic*_*sov 5

表3 - 从Table1中选择表2中没有的行

  CREATE TABLE Table3
  SELECT t1.* from Table1 t1
  WHERE NOT EXISTS(Select 1 from Table2 t2 
                   WHERE t1.FirstName = t2.FirstName
                     AND t1.LastName = t2.LastName)
Run Code Online (Sandbox Code Playgroud)

表3 - 从Table2中选择表2中的行

  CREATE TABLE Table3
  SELECT t1.* from Table1 t1
  WHERE EXISTS(Select 1 from Table2 t2 
                   WHERE t1.FirstName = t2.FirstName
                     AND t1.LastName = t2.LastName)
Run Code Online (Sandbox Code Playgroud)