我想要实现的一个简化示例:
表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 | ... |
表2
FirstName | LastName |
---------------------|
John | Dunbar |
Mr | T |
所以,我想创建的是表1,没有所有记录匹配表2。 换句话说,表3:
FirstName | LastName | Age | Eye Color |
---------------------------------------|
Jane | Austin | 98 | Green |
One | More | ... |
我不确定到达那里最好的“选择”是什么。我猜测“加入”的一些聪明用法,但不确定......
答案 0 :(得分: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)
表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)
答案 1 :(得分:0)
来自Table1的SELECT *,其中FirstName不在(从Table2中选择Firstname)而LastName不在(从Table2中选择LastName)
这应该有效