1

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

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.
4

2 回答 2

3

Either use getString(int) or use Task.ScrumID as task_scrum_id and getString("task_scrum_id"). I personally prefer the latter approach.

So, in this case, the task would be

String taskId = rs.getString(3)

or your query would be

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

String taskId = rs.getString("task_scrum_id")
于 2013-08-23T19:17:32.597 回答
1

您可以给列别名。请看下面的例子。

SELECT 
    TeacherName = T.Name
,   StudentName = S.Name
FROM Teachers T
JOIN Students S ON T.SomeValue = S.SomeValues 
于 2013-08-23T19:20:02.713 回答