我正在处理一个广义问题,我只给出了多个表的模式定义。SQL JOIN OPTIMIZATION
现在我必须通过连接多个表来检索某些列,以便最大限度地减少连接数。
示例:假设我有3个表,这里是他们有的列的列表。
表1:(1,2,3,4,5), 表2:(5,6,7), 表3:(5,6,7,8)
现在假设我有一个查询,我想要所有的列1,2,3,4,5,6,7,8。
现在我可以加入任何表1,表2和表3 OR 表1和表3。我会得到在这两种情况下所需要的信息,但加入表1和表3中仅需要1在其他情况下加入而不是2加入。
我想要的是一种贪婪算法,首先我会考虑具有最大数量所需列的表,然后消除查询和表之间的共同列(来自查询和表),然后考虑更新所需的列和更新表格等等,但我想这会很慢。
那么有没有一个广义的算法,或者如果任何人都可以在这个方向给我任何提示?
因为它发布的任务,使得在SQL域中没有SENCE。同一组列名不能确保相同的内容。 – Serg