我的任务是根据现有查询和用户选择的字段构建动态查询(或算法)。让我解释:
可以说我有一个功能
ConstructQuery(string inputQuery, string[] requiredTables, string[] userFields) 带有 2 个输入参数:
- inputQuery:具有许多字段和表、连接和 where 条件的字符串查询
- 强制表:强制表列表
- userFields:用户在某些 Web 或桌面应用程序中选择的字段列表
函数必须返回优化查询,其中包含查询成功所需的表和连接。
inputQuery 例如构造如下:
SELECT
Table1.SomeFieldA,
Table2.SomeFieldB,
Table2.SomeFieldC,
Table3.SomeFieldD
FROM Table1
JOIN Table2 ON Table1.Code = Table2.Code
JOIN Table3 ON Table2.Code = Table3.Code
WHERE Table1.SomeConditionField = "xyz"
用户字段是:SomeFieldB、SomeFieldC
强制性表格:Table1
所以预期的查询是:
SELECT
Table2.SomeFieldB,
Table2.SomeFieldC
FROM Table1
JOIN Table2 ON Table1.Code = Table2.Code
WHERE Table1.SomeConditionField = "xyz"
我的问题是:是否有某种工具可以解决此类问题,或者你们将如何解决?我在考虑二叉树...
问候,贾尼