2013-04-29 86 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