给定这个 200 万+ 条目表,ID 自动递增,以及 index1(MainId,SubID,Column1) index2(MainId,SubID,Column2):
ID MainID SubID Column1 Column2
--------------------------------------
1 1 A 1A_data_1
2 1 A 1A_data_2
3 2 B 2B_data_1
4 2 B 2B_data_2
5 1 A ignore_me
6 1 A 1A_data_3
我可以使用以下索引获取包含所需列值的行 ID:
Select max(ID)
From table where column1 is not null and column1 <>'ignore_me'
Group By MainID,SubID
Select max(id)
From table where column2 is not null and column2 <>'ignore_me'
Group By MainID,SubID
但我不能做的是找到一种有效的方法将这些与 MainID、SubID 组结合起来以获得这些结果:
MainID SubID Column1 Column2
--------------------------------
1 A 1A_data_1 1A_data_3
2 B 2B_data_1 2B_data_2
我尝试了很多不同的方法,但没有什么是不会永远的。我需要另一个索引吗?我觉得我忽略了一些简单的事情,因为查询分组非常快。谁能指出我正确的方向?