mysql不存在不工作

1sbrub3j  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(427)

我有两个表,一个叫做st\u grid,里面有足球比赛,另一个表,st\u compiled,它本质上是st\u grid的副本,但是在st\u compiled中放入一行的过程非常密集,所以我想一次放入一行数据。这两个表与相关列类似:
st\ U网格
身份证件
联盟id
固定装置安装日期
正在运行\u夹具\u已编译
正在播放\u夹具\u已编译\u id
网格id
我想从st\u grid中选择一行,在grid上编译的st\u中没有对应的行,但是我没有任何运气。我查了各种各样的查询,正在尝试这个

SELECT g.id
                    FROM st_grid g
                    WHERE NOT EXISTS
                                (SELECT i.grid_id
                                FROM inplay_fixture_compiled i
                                WHERE g.id = i.grid_id)
                    AND g.league_id = '15'

但它不工作,所发生的一切是网页挂了几分钟,当我试图运行它。有大约170000行在圣è网格(但对于每个联赛的id将有最多600行)和10000在圣è编译,但我不相信这是一个巨大的数额在任何方式。
希望这是有意义的,任何帮助非常感谢。p

b1zrtrql

b1zrtrql1#

为什么不在这个例子中尝试join来获取st\u grid中尚未存在的所有数据呢。
例如:;

select grid_id 
from st_grid t1 
left join st_compiled t2 on t1.grid_id = st_compiled.grid_id 
where t2.grid_id is null
dffbzjpn

dffbzjpn2#

SELECT g.grid_id
 FROM st_grid g
 LEFT JOIN inplay_fixture_compiled i ON (g.id = i.grid_id) 
 WHERE g.league_id = '15' and i.grid_id is null.

您可以使用left join关键字连接这些表并过滤掉null,但这可能比使用not exists效率低。

相关问题