通常这种情况是因为使用了错误的键或没有正确地指定键。例如,在以下代码中:
select *
from table1
left anti join table2
on table1.id = table2.id;
如果table2中的id列不存在或与table1中的id列名不完全匹配,那么结果将返回0行。确保两个表之间具有相同的列名,并且在使用anti-join时确切地指定每个表中要比较的键。例如:
select *
from table1
left anti join table2
on table1.id = table2.table1_id;
这里使用了一个更具描述性的键名,并表明它只出现在table2中,而不是在两个表中都定义。这使得anti-join比较正确,并返回相应的结果。