2013-04-29 98 views
0

返回结果我有表A:从一对多的关系

ID Name 

表B:

ID A_ID COLORS 

A_ID是FK于表A 表A表B是一个太多。

我想在一次SQL调用中返回给定表A ID的全部表B. 我假设这是最好的想法,在这种情况下返回一个结果集(?),然后我要滚动结果集来设置给定人的所有颜色,以便我可以设置颜色列表。

Person(int id, String name, List<String>colors){ 

} 

我试图找出SQL,我想知道一般情况下,如果我在做什么是好的。

+0

你能提供一个输入数据和你想要的结果的例子吗? – 2013-04-29 23:12:28

+0

我打算制作x个Person对象。示例数据集是表A:(1,“Homer”),表B:(1,1,“红色”),(2,1,“蓝色”)。这将使一个Person对象与id = 1,名称=“Homer”和颜色= ArrayList(“红色”,“蓝色”) – bmw0128 2013-04-29 23:15:23

回答

1

SELECT TableA.Name, TableB.COLORS FROM TableA INNER JOIN TableB ON TableA.ID=TableB.A_ID WHERE TableA.ID = "Given TableA ID"

取决于你有多少次运行此查询,它是多少结果返回最有可能的返回他们都在同一个镜头是做正确的方式。

+0

是啊,我正在寻找如何获得单个结果集的所有名称和颜色名称。然后,在代码中,我将迭代并创建Person对象。我在考虑更好地进行一次SQL调用,而不是每人一次? – bmw0128 2013-04-29 23:20:23

+0

听起来就像你刚才所说的那样,你只想'选择*从颜色ORDER BY A_ID'并迭代 – Scotch 2013-04-29 23:22:45

+0

@ bmw0128我根据你的说明更新了SQL。 – 2013-04-29 23:25:49