2013-04-29 2 views
0

У меня есть таблица А:Возвращение результатов от отношения один-ко-многим

ID Name 

Таблица B:

ID A_ID COLORS 

A_ID является ФК в таблице A таблицы А в таблице B является одним слишком много.

Я хочу вернуть всю таблицу B для заданной таблицы ID в одном вызове SQL. Я предполагаю, что это лучшая идея, чтобы вернуть один результирующий набор в этом сценарии (?), Затем я перейду к набору результатов, чтобы установить все цвета для данного человека, чтобы я мог установить список цветов ,

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

} 

Я пытаюсь выяснить SQL, и мне интересно, если то, что я делаю, в порядке.

+0

Можете ли вы привести пример входных данных и результатов, которые вы хотите? –

+0

Я собираюсь сделать x объектов Person. Примерный набор данных: Таблица A: (1, «Гомер»), Таблица B: (1, 1, «Красный»), (2, 1, «Синий»). Это создало бы один объект Person с id = 1, name = «Homer» и colors = ArrayList («Красный», «Синий») – bmw0128

ответ

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

+0

Похоже на то, что вы только что сказали, вы хотите просто «SELECT * FROM Colors ORDER BY A_ID' и повторите это так, что – Scotch

+0

@ bmw0128 Я обновил SQL на основе вашего разъяснения. –

Смежные вопросы