将变量分配给与JOIN不同的表中具有相同名称的列

时间:2013-08-23 19:16:13

标签: java sql

我正在进行连接以从数据库中检索数据并将其分配给变量

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.

2 个答案:

答案 0 :(得分: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 :(得分:1)

您可以为列提供别名。 请看下面的例子。

SELECT 
    TeacherName = T.Name
,   StudentName = S.Name
FROM Teachers T
JOIN Students S ON T.SomeValue = S.SomeValues 
相关问题