HTML-список записей, полученный в результате объединения двух таблиц, которые связаны один-много - PullRequest
0 голосов
/ 16 января 2011

У меня есть две таблицы, которые связаны отношением один-ко-многим, т.е.

tableOne  (1)----------(*) tableTwo 

Учитывая базовую схему ниже

tableOne {
    groupID int PK,
    groupTitle varchar
}

и

tableTwo {
    bidID int PK,
    groupID int FK
}

Предположим, что две таблицы дают следующий набор записей, основанный на объединении таблиц в tableOne.groupID = tableTwo.groupID,

tableOne.groupID  |  tableOne.groupTitle   | tableTwo.bidID  |  tableTwo.groupID
________________________________________________________________________________ 

         1        |  Physics Group         |      1          |      1 

         2        |  Chemistry Group       |      2          |      2

         2        |  Chemistry Group       |      3          |      2

         1        |  Physics Group         |      4          |      1

Я хотел бы перечислить такой набор записей в таблице HTML следующим образом:

tableOne.groupID  |  tableOne.groupTitle   | tableTwo.bidID  |  tableTwo.groupID
________________________________________________________________________________ 

         1        |  Physics Group         |      1          |      1 

                  |  Physics Group         |      4          |      1

         2        |  Chemistry Group       |      2          |      2

                  |  Chemistry Group       |      3          |      2

Мне интересно узнать, можно ли это сделать в SQL, или, в качестве альтернативы, найти способы перечисления такого набора записей в HTML, используя хорошие стандарты.

Решение, которое приходит на ум, заключается в простой итерации набора записей и использовании дозорного для составления списка всех записей с одинаковыми tableOne.groupID, сгруппированных в одну строку <tr>, а также перечисления tableOne.groupID s один раз как уникальный идентификатор этой записи группы. Однако я не хочу идти по этому пути, поскольку хотел бы избежать смешивания кода с HTML, если это возможно.

1 Ответ

0 голосов
/ 16 января 2011

Вы можете заказать результаты sql, используя предложение ORDER BY.

Так что, если вы добавите

ORDER BY tableOne.groupID ASC, tableTwo.bidID ASC

в вашем запросе вы на полпути.

Следующий шаг - зациклить и распечатать набор записей со страницы asp, а также проверить, отличается ли последний groupID от текущего, чтобы решить, показывать его или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...