我有两个表,一个名为st_grid,其中包含足球匹配,另一个表是st_compiled,本质上是st_grid的副本,但是在st_compiled中放置行的过程非常密集,所以我想放置数据一次一排。这两个表与相关列相似:
我想从st_grid中选择一行,其中st_compiled ON grid_id中没有对应的行,但我没有运气。我已经查找了各种查询并尝试了这个查询
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'
但它无法正常工作,所有发生的事情都是当我尝试运行它时页面挂了几分钟。 st_grid中有大约170,000行(但每个league_id最多有600行)和st_compiled中的10,000行,但我不相信这是一个巨大的数额。
希望有意义,任何帮助都非常感激。 P
答案 0 :(得分:0)
为什么不尝试加入这个案例来获取st_grid中st_compiled中尚不存在的所有数据。
例如;
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
答案 1 :(得分:0)
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效率。