我有一个非常独特的情况,我继承了一个已编译的应用程序但没有来源来改变它。因此,我希望暂时扩展系统,以便购买几周才能重写它。
首先让我放下一个小例子数据库,让事情更容易理解。
Table Team
ID Name City
1 Fish Carson City
2 Rats Springfiled
3 Salamanders Lubboch
Table Players
ID Team_ID Name
1 1 Bill
2 1 Ted
3 2 Moe
4 3 Al
5 3 Stan
查看配置文件我可以看到应用程序正在使用以下配置字符串来生成以下SQL查询。
配置字符串:ID,Team_ID,Name
SQL QUERY SELECT ID,Team_ID,Name FROM Players WHERE ID = 2
我无法编辑SQL查询但我可以编辑配置字符串
当然结果是:2, 1, Ted
但这不是最佳选择。我真正希望得到的是:2, Fish, Ted
鉴于我无法访问生成查询的代码,除了更改配置字符串之外,我无法更改查询。
由于我不是高级SQL用户,所以我觉得我希望有一种方法可以在配置字符串中插入以下伪查询。
配置字符串:ID,team.name(Team_ID),Name
SQL QUERY SELECT ID,team.name(Team_ID),Name FROM Players WHERE ID = 2
我对数据库拥有完整的权利。任何人都可以想到一种方法,我可以添加一个存储的或计算的或具有名称的东西,这将允许我这样查询?
答案 0 :(得分:1)
您可以尝试将依赖子查询插入配置字符串中:
ID,(SELECT Name FROM Team WHERE ID = Players.Team_ID),Name
如果这适用于您的应用程序是另一个问题......
也许试试这个,它保持列名不变:
ID,(SELECT Name FROM Team WHERE ID = Players.Team_ID) AS Team_ID,Name