gpt4 book ai didi

mysql - 返回一个 MySQL 表中存在但另一表中不存在的项目,需要考虑 2 列

转载 作者:行者123 更新时间:2023-11-29 14:01:33 24 4
gpt4 key购买 nike

我想返回 table1 中所有处于事件状态且 table2 中没有任何共享相同坐标(纬度、经度)的项目的邮政编码。IE。在下面的返回中:

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

最佳答案

您可以使用LEFT JOIN:

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

参见SQL Fiddle with Demo

或者您可以在 WHERE 子句中使用 NOT EXISTS:

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)

参见SQL Fiddle with Demo

关于mysql - 返回一个 MySQL 表中存在但另一表中不存在的项目,需要考虑 2 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14985903/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com