2013-08-23 25 views
1

我做了一個連接以從數據庫檢索數據,並正在將其分配給變量分配變量爲其它具有相同名稱列在不同的表從JOIN

rs = select.executeQuery("SELECT PK_Task, PointPerson, Task.ScrumId, Story.ScrumId, Product.ScrumId FROM [Task] " + 
    "INNER JOIN [Story] ON StoryId=PK_Story INNER JOIN [Product] ON ProductId=PK_Product WHERE Product.Deleted!=1"); 

要獲取這樣的數據:

while(rs.next()) { 
    String taskId = rs.getString("PK_Task"); 
} 

但如何我從那些對不同的表名稱相同的列數據:

while(rs.next()) { 
    Long taskScrumId = rs.getLong("Task.ScrumId"); 
} 

結果:

com.microsoft.sqlserver.jdbc.SQLServerException: The column name Task.ScrumId is not valid. 
+0

更好的方法是你的別名列,如果它們具有相同的名稱...'選擇PK_TASK,PointPerson,Task.ScrumID AS TheScrum ...' – JonH

回答

3

要麼使用getString(int),或使用Task.ScrumID as task_scrum_id和GetString( 「task_scrum_id」)。我個人比較喜歡後一種方法。

因此,在這種情況下,任務是

String taskId = rs.getString(3) 

或查詢將

select.executeQuery("SELECT PK_Task, PointPerson, Task.ScrumId as task_scrum_id, ... 

String taskId = rs.getString("task_scrum_id") 
1

你可以給列別名。 請看下面的例子。

SELECT 
    TeacherName = T.Name 
, StudentName = S.Name 
FROM Teachers T 
JOIN Students S ON T.SomeValue = S.SomeValues 
相關問題