Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выборка из 2х таблиц в виде дерева 
:(
    Опции темы
Shar
Дата 6.10.2009, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 24.3.2009

Репутация: нет
Всего: нет



Уважаемые, прошу помощи! Есть 2 таблицы: таблица разделов section со структурой:
Поле    
id_sec             
name             
title             
sort         
lock

и таблица альбомов albums со структурой:
Поле    
id_alb         
sec (идентификатор раздела)             
name         
title             
sort         
lock

Необходимо запросом сформировать набор данных включающий Раздел и все альбомы относящиеся к нему, при использовании LEFT JOIN получается немного не то что нужно. Можно ли такое осуществить 1 запросом?
PM MAIL   Вверх
DimW
Дата 6.10.2009, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 4
Всего: 44



Цитата(Shar @  6.10.2009,  14:14 Найти цитируемый пост)
при использовании LEFT JOIN получается немного не то 

ну так пример приведите как должно получиться и как получилось у вас.
PM MAIL ICQ   Вверх
Shar
Дата 6.10.2009, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 24.3.2009

Репутация: нет
Всего: нет



получилось так

d_sec    name    title    sort    lock    id_alb    sec    name    title    sort    lock 
1    Свадьба    аыва    0    0    1    1    Путин        0    0
1    Свадьба    аыва    0    0    3    1    Свадьба жорика        0    0
3    Родители        0    0    2    3    Прогулка в парке    Семейная фотография    0    0

А надо чтобы свадьба не повторялась и строка состояла из 1 названия раздела и подчиненных ему альбомов
PM MAIL   Вверх
DimW
Дата 6.10.2009, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 4
Всего: 44



все равно не понятно.

Цитата(Shar @  6.10.2009,  14:53 Найти цитируемый пост)
 строка состояла из 1 названия раздела и подчиненных ему альбомов 

подчененные альбомы в той же строке быть должны(к примеру - перечислены через запятую) или идти отдельными строками после разделов?
PM MAIL ICQ   Вверх
Shar
Дата 6.10.2009, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 24.3.2009

Репутация: нет
Всего: нет



Цитата(DimW @  6.10.2009,  14:58 Найти цитируемый пост)
подчененные альбомы в той же строке быть должны(к примеру - перечислены через запятую) или идти отдельными строками после разделов?


идти отдельными строками

хочу чтобы вывести можно было такое:

Раздел 1
    Альбом 1
    Альбом 2

Раздел 2
   Альбом 1
   Альбом 2

Это сообщение отредактировал(а) Shar - 6.10.2009, 15:15
PM MAIL   Вверх
DimW
Дата 6.10.2009, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 4
Всего: 44



Цитата(Shar @  6.10.2009,  14:59 Найти цитируемый пост)
хочу чтобы вывести можно было такое:

пример:
Код

create table TABLE1
( ID   NUMBER not null,
  NAME VARCHAR2(100));

create table TABLE2
( ID        NUMBER,
  TABLE1_ID NUMBER,
  NAME      VARCHAR2(100),
  INFO      VARCHAR2(100));

insert into table1 (ID, NAME)
values (1, 'name1');

insert into table1 (ID, NAME)
values (2, 'name2');

insert into table1 (ID, NAME)
values (3, 'name3');


insert into table2 (TABLE1_ID, NAME, ID, INFO)
values (1, 'name1', 1, 'info 1');

insert into table2 (TABLE1_ID, NAME, ID, INFO)
values (1, 'name2', 2, 'info 2');

insert into table2 (TABLE1_ID, NAME, ID, INFO)
values (1, 'name3', 3, 'info 3');

insert into table2 (TABLE1_ID, NAME, ID, INFO)
values (3, 'name4', 4, 'info 4');

insert into table2 (TABLE1_ID, NAME, ID, INFO)
values (3, 'name5', 5, 'info 5');

select name
      ,info
  from (select t1.id
              ,t1.name name
              ,null info
              ,0 x
          from table1 t1
        union all
        select t1.id
              ,t2.name name
              ,t2.info info
              ,1 x
          from table1 t1
         inner join table2 t2 on t1.id = t2.table1_id)
 order by id, x

PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0561 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.