2014-03-26 45 views
0

我有一個非常獨特的情況,我已經繼承了一個已編譯的應用程序,但沒有來源來改變它。因此,我希望暫時擴展系統以購買幾周以重寫它。在mysql中訪問相關字段的最佳方式

首先讓我放下一個小例子數據庫,使事情更容易理解。

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查詢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查詢SELECT ID,team.name(Team_ID),Name FROM Players WHERE ID = 2

我有充分的權利數據庫。任何人都可以想出一種方法,我可以添加一個存儲或計算或名稱,這將允許我這樣查詢?

+1

我不確定我是否理解。一個簡單的連接'從p中選擇p.id,t.name,p.name p加入p.Team_id = t.id'上的團隊將會得到一個表格player_id,team_name,player_name – deanosaur

回答

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 
相關問題