2015-02-18 1 views
2

У меня есть настройки баз данных, как это:Как остановить Ее Возвращение Дважды MYSQL

Table: Sections 
section_id | section_name 
    i23kj | News 
    o492q | Events 

Table: Subsections 
sub_section_id | section_id | sub_section_name 
    q123l  | i23kj | Washington Post 
    z765a  | i23kj | NY Times 
    w439m  | o492q | Launch Party 

Я хочу страницу, чтобы напечатать следующую информацию:

 
News 
Washington Post 
Ny Times 

Events 
Launch Party 

Я использую запрос:

SELECT Sections.section_id, Sections.section_name, Subsections.sub_section_id, Subsections.sub_section_name 
FROM Sections INNER JOIN Subsections 
ON Sections.section_id=Subsections.section_id 

Однако это возвращает:

 
News 
Washington Post 

News 
Ny Times 

Events 
Launch Party 

Как я могу изменить мой запрос для отображения только секции раз и подразделов в рамках этого раздела

+0

Вы можете предоставить желаемый выходной стол? не отформатированный с помощью php-вывода, но фактическая таблица из sql –

+0

вы всегда будете получать раздел от своего пользователя, вам нужно будет отредактировать php, чтобы отображать его только один раз. –

+0

Я думал, что это может быть так. благодаря – Ellery

ответ

1

вам нужно использовать подзапрос, просто тестировал увидеть DEMO:

create table sections 
(
    section_id varchar(10), 
    section_name varchar(50) 
); 
create table subsections 
(
    sub_section_id varchar(10), 
    section_id varchar(10), 
    sub_section_name varchar(50) 
); 
insert into sections 
     values('i23kj','News'), 
      ('o492q','Events'); 
insert into subsections 
     values('q123l','i23kj','Washington Post'), 
      ('z765a','i23kj','NY Times'), 
      ('w439m','o492q','Launch Party'); 

и результат ниже запроса - именно то, что вы хотели бы задать:

select case 
     when q2.sub_section_id is null then section_name 
     else sub_section_name end 
from 

(select * from (select Sections.section_id, Sections.section_name, 
     null as sub_section_id, null as sub_section_name 
FROM Sections 
union 
SELECT Sections.section_id, Sections.section_name, 
     Subsections.sub_section_id, Subsections.sub_section_name 
FROM Sections INNER JOIN Subsections 
     ON Sections.section_id=Subsections.section_id) as q 
     order by q.section_id,q.sub_section_id) as q2 
Смежные вопросы