У меня есть 2 таблицы. Одна таблица - «заголовки» & содержит заголовки, а другая - «подзаголовки» и содержит подзаголовки, которые (& должны быть) классифицированы под заголовками и должны иметь соответствующую рубрику. Подзаголовок может иметь только один заголовок, и многие подзаголовки могут иметь одно и то же заголовок. Поэтому рассмотрим следующий формат:PHP повторяющиеся строки только один раз
--Table heading
heading_id heading
1 H1
2 H2
3 H3
--Table sub_heading
sub_head_id sub_heading heading_id
1 SH1 1
2 SH2 1
3 SH3 2
4 SH4 3
5 SH5 2
6 SH6 4
То, что я хотел бы сделать, это запрос к базе данных только один раз и получить все sub_headings и соответствующие заголовки (используя внутреннее соединение?) И выводить Heading только один раз и перечислить все sub_headings перечисленных в их соответствующих заголовках. Таким образом, на практике, я хотел бы показать вверх OUTPUT AS РЕЗУЛЬТАТ:
H1
--SH1
--SH2
H2
--SH3
--SH5
H3
--SH4
H4
--SH6
Как вы можете видеть, Заголовки через echo только один раз, и все подзаголовки, которые принадлежат к подразделу хорошо показаны под их соответствующим заголовком. Поэтому я хотел бы знать, какой запрос я бы написал для этого.
ПРИМЕЧАНИЕ: Я уже написал код для извлечения header_id, и при этом в цикле запросите базу данных для соответствующих подзаголовков. Это снова приводит к циклу sub_headings. Но (я чувствую) недостаток в этом заключается в том, что для каждого существующего заголовка, который существует, БД будет запрашиваться хотя бы один раз, чтобы получить соответствующие подзаголовки. Таким образом, если существует 50 заголовков, и, получая их в цикле, выполняется второй запрос для получения подзаголовков. Мне нужно записать второй запрос, чтобы получить подзаголовки и обработать их в цикле. Я хочу избежать этого.
Так что это действительно поможет, если кто-нибудь скажет мне, как запросить БД только один раз и вывести результат, как я указал выше. Заранее спасибо.
УДИВИТЕЛЬНЫЙ! Отлично! Большое спасибо. – Devner
@Tatu, в вашем запросе отсутствует запятая, мой друг. Оно должно быть: s.heading_id ASC, s.sub_head_id ASC Незначительная коррекция, но может помочь любому в будущем. – Devner
@ Devner, спасибо, что указали это. –