在一个MySQL表中返回的项目不存在于另一个MySQL表中,要考虑2列
我想返回表1中所有处于活动状态且表2中没有共享相同坐标(lat、lng)的项目的邮政编码。 即,在以下报税表中:在一个MySQL表中返回的项目不存在于另一个MySQL表中,要考虑2列,mysql,Mysql,我想返回表1中所有处于活动状态且表2中没有共享相同坐标(lat、lng)的项目的邮政编码。 即,在以下报税表中: AB11AC 我知道有几种方法只检查一列,但不确定如何适应两列。我应该在查询中将这两列连接在一起,还是有更有效的方法?我的每个表都有大约200万个条目 表1: postcode lat lng active ------------------------- AB11AA 55 1 Y AB11AB 56 1 Y AB11AC 57 1
AB11AC
我知道有几种方法只检查一列,但不确定如何适应两列。我应该在查询中将这两列连接在一起,还是有更有效的方法?我的每个表都有大约200万个条目
表1:
postcode lat lng active
-------------------------
AB11AA 55 1 Y
AB11AB 56 1 Y
AB11AC 57 1 Y
表2:
postcode lat lng active
--------------------------
AB11AA 55 1 Y
AB11AD 56 1 Y
AB11AE 59 1 Y
您可以使用
左连接
:
select *
from table1 t1
left join table2 t2
on t1.lat = t2.lat
and t1.lng = t2.lng
where t1.active = 'Y'
and t2.postcode is null
看
或者您可以在WHERE
子句中使用notexists
:
select *
from table1 t1
where t1.active = 'Y'
and not exists (select *
from table2 t2
where t1.lat = t2.lat
and t1.lng = t2.lng)
看