Автор Тема: помогите с запросом  (Прочитано 2577 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Jean

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 113
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
помогите с запросом
« : 23 Июля 2004, 12:42:43 »
пусть есть таблица
create table object
(
id int,
name text,
parentid int,
foreign key (parentid) references object (id)
)

чтобы получить данные об объектах
я могу например послат такой запрос:

select id, name
from object

так вот мне нужно за один запрос получить не только информацию об объекте, но и о его родителе.
возможно ли такое?

например
(1, object1, null)
(2, object2, null)
(3, object3, 1)
(4, object4, 3)


то есть в данном случае у 1 и 2 нету родителей, а у 3 родитель - 1, у 4 родитель 3.

в общем в итоге я должен получить
подобный контейнер:
(object_name, parentobject_name)

спасибо.

Оффлайн Forza

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 288
  • +0/-0
  • 0
    • Просмотр профиля
помогите с запросом
« Ответ #1 : 23 Июля 2004, 13:16:01 »
Т.е. ты хочешь получить в одной строке имя объекта и его родителя? Безродительных объектов тоже выводить? Тогда SELECT o1.name, o2.name FROM object AS o1 LEFT JOIN object AS o2 ON o1.parentid=o2.id (инфа на http://www.mysql.ru/docs/man/JOIN.html).

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
помогите с запросом
« Ответ #2 : 23 Июля 2004, 13:20:35 »
Jean
на будущее.
Мир СУБД на mysql не заканчивается. Указывай, пожалуйста, используемую СУБД.
« Последнее редактирование: 23 Июля 2004, 13:39:13 от Макс »
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Jean

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 113
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
помогите с запросом
« Ответ #3 : 23 Июля 2004, 13:24:11 »
Forza

большое спасибо, работает


Макс
так и поступлю

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28