我非常非常地请求你的帮助。请帮帮我。
我有两张桌子,如下所示:
first_table
field1 field2 field3 field4
====== ====== ====== ======
A B C D
A B C D
A A C B
A A C B
second_table
field1 field2 field3 field4
====== ====== ====== ======
A B C D
A B C D
A A C B
A A C B
我需要准备一个sql查询,如下所示:
first_table
获取second_table
中不存在的记录。例如:
select first_table.field1, first_table.field2,
first_table.field3, first_table.field4
from
first_table
where
distinct (first_table.field1 NOT IN second_table.field1 AND first_table.field2
NOT IN second_table.field2)
但上述查询不起作用。我怎么能这样做?
答案 0 :(得分:2)
这是你的意思吗?
select first_table.field1, first_table.field2,
first_table.field3, first_table.field4
from first_table
where not exists (
select 1 from second_table
where second_table.field1 = first_table.field1
and second_table.field2 = first_table.field2
)
这假定字段不允许为空。如果需要,易于处理null,但执行此操作的首选方法因数据库而异。
答案 1 :(得分:0)
此查询将在first_table中查找second_table中没有相应记录的记录。尝试此操作后,请指明您需要什么,以便我们为您提供帮助。
select t1.field1, t1.field2, t1.field3, t1.field4 from first_table as t1
left outer join second_table as t2 on t1.field1 = t2.field1 and t1.field2 = t2.field2
where t2.field1 is null and t2.field2 is null
答案 2 :(得分:0)
你的问题不明确,但我向你们提出两个问题,我们认为其中一个会非常符合你们的要求。
1。
select first_table.field1,first_table.field2,first_table.field3,first_table.field4
from first_table
join second_table
on first_table.field1 not like second_table.field1 and first_table.field2 not like second_table.field2;
2
select first_table.field1,first_table.field2,first_table.field3,first_table.field4 from first_table
join second_table
on (first_table.field1 like second_table.field1 and first_table.field2 like second_table.field2)
group by first_table.field1,first_table.field2,first_table.field3,first_table.field;
我认为其中一个会帮助你。