我不太擅长SQL,因此我要求你们提供有关编写查询的帮助。 [SQL查询-表连接问题]https://codingdict.com/questions/208252) 我得到了答案,并且可以正常工作!它只是明显的缓慢。我讨厌这样做,但是我真的希望有人在那里推荐一些优化查询的方法。我什至没有自己尝试过,因为我对SQL不够了解,甚至无法开始使用谷歌搜索。
可能有帮助的是在要加入的列上创建索引。例如;
CREATE INDEX name_for_index ON Main (StatusID);
它将为此列生成一个查询表,执行查询的算法将使用该表。
编辑:如果您不允许更改数据库,则可能不走运。我已经看到在某些情况下放宽JOIN语句可以改善性能,那就是这样。
... FROM Main m, Status st, Secondary s WHERE st.ID = m.StatusID AND s.MainID = m.ID AND ( s.MainID IS NULL AND m.WhenDate = <YourDate> OR s.MainID IS NOT NULL AND s.WhenDate = <YourDate> ) AND TypeId = <TypeFilter> AND ... other filters, if you need any ...
然后处理您的其他情况,其中INNER JOIN需要更加详细。
INNER JOIN