Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > СУБД, общие вопросы > сложный для меня sql запрос на postgres


Автор: stmamont 11.7.2006, 17:56
Пусть есть таблицы

Section
- Id
- Name
...

Group
- Id
- Name
...

Log
- Type
- item_id
...

в Log::Type записано либо 'Group' либо 'Section'
в Log::item_id лежит либо Section::Id либо Group::Id
Как мне сделать выборку что бы вместо из Log, чтобы в ней, вместо item_id красовалось либо Section::Name либо Group::Name соответственно

Использую PostgreSQL.
Но хотелось бы увидеть вариант, по стандарту SQL 

Автор: Ignat 11.7.2006, 18:05
Примерно так:

Код

    SELECT Log.item_id, Section.Name
    FROM Log INNER JOIN Section ON Log.item_id=Section.Id
    WHERE Log.Type='Section'
UNION
    SELECT Log.item_id, Group.Name
    FROM Log INNER JOIN Group ON Log.item_id=Group.Id
    WHERE Log.Type='Group';

 

Автор: stmamont 12.7.2006, 21:01
спасибо.
вот про union я как то и забыл...
как то старался избегать в своей практике его всегда...
не знаю почему 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)