给定这个 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
我尝试了很多不同的方法,但没有什么是不会永远的。我需要另一个索引吗?我觉得我忽略了一些简单的事情,因为查询分组非常快。谁能指出我正确的方向?