Sql 从一对多关系返回结果

Sql 从一对多关系返回结果,sql,one-to-many,Sql,One To Many,我有表A: ID Name 表B: ID A_ID COLORS A_ID是表A的FK 表A到表B是一对多 我想在一次SQL调用中返回给定表a ID的所有表B。 我假设这是最好的主意,在这个场景中返回一个结果集(?),然后我将滚动结果集,为给定的人设置所有颜色,以便设置颜色列表 Person(int id, String name, List<String>colors){ } Person(int-id、字符串名、Listcolors){ } 我试图找出SQL,我想知道我

我有表A:

ID Name
表B:

ID A_ID COLORS
A_ID是表A的FK 表A到表B是一对多

我想在一次SQL调用中返回给定表a ID的所有表B。 我假设这是最好的主意,在这个场景中返回一个结果集(?),然后我将滚动结果集,为给定的人设置所有颜色,以便设置颜色列表

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

}
Person(int-id、字符串名、Listcolors){
}

我试图找出SQL,我想知道我现在做的是否正常。

选择TableA.Name,TableB.COLORS FROM TableA INNER JOIN TableA.ID=TableB.A\u ID WHERE TableA.ID=“给定TableA ID”


根据您运行此查询的次数和返回的结果,最有可能的方法是一次返回所有结果。

能否提供一个输入数据和所需结果的示例?我将生成x个Person对象。一个示例数据集是表A:(1,“荷马”)、表B:(1,1,“红色”)、(2,1,“蓝色”)。这将使一个人对象具有id=1、name=“Homer”、colors=ArrayList(“红色”、“蓝色”)是的,我正在研究如何为每个名称的所有名称和颜色获取单个结果集。然后,在代码中,我将迭代并生成Person对象。我在想,做一个SQL调用比每人一个要好?听起来就像你刚才说的,你只想从颜色顺序中选择*按A_ID进行迭代,我认为这会起作用,谢谢。我如何确定我应该只执行一个SQL,这将有重复的数据,还是每个人执行一个SQL?首选一个SQL,除非它是大量的数据,这将导致客户端计算机上的性能/内存问题(通常意味着桌面应用程序中有100K+行)。使用多个SQL语句的另一个原因是如果大部分数据将不被使用。例如,您可以显示所有人的列表,但是如果用户不太可能点击大多数人,因此实际上需要这些颜色,则可以考虑避免一个大SQL只将颜色拉回到所需的(不可能)事件中。简而言之,我将使用一个SQL,然后测量并查看您是否有问题。