Вывести виртуальное поле показывающее какие из общей таблицы имеются в подчиненной

alexey.barkalov
Дата: 08.08.2012 13:44:52
Здравствуйте. Возник такой вопрос:
Есть таблица: MATERIALS (материалы)
Состоящая из полей: M_ID, M_NAME, ...;

Есть подчиненная таблица - MATERIAL_CONTENTS (состав материала)
Состоящая из полей: MC_ID, M_ID,  MC_PROP1, MC_PROP2


Есть запрос, который по определенному условию выполняет выборку из MATERIALS

select *
from MATERIALS
where <заданное_условие>


подскажите, пожалуйста - что необходимо добавить в запрос, чтобы на выходе у нас была таблица из полей:
M_ID, M_NAME, IS_SEL
где поле IS_SEL равно единица если в таблице MATERIAL_CONTENTS присутствует элемент M_ID и ноль в противном случае.
alexey.barkalov
Дата: 08.08.2012 13:49:57
Используется FB 2.0
Dimitry Sibiryakov
Дата: 08.08.2012 13:50:29

alexey.barkalov
поле IS_SEL равно единица если в таблице MATERIAL_CONTENTS присутствует элемент M_ID и
ноль в противном случае.

CASE WHEN EXISTS(.....) THEN 1 ELSE 0 END as IS_SEL

Posted via ActualForum NNTP Server 1.5

alexey.barkalov
Дата: 08.08.2012 13:56:01
Dimitry Sibiryakov
CASE WHEN EXISTS(.....) THEN 1 ELSE 0 END as IS_SEL



т.е. на каждую запись MATERIALS будет срабатывать CASE в котором делается select в подчиненное таблице, так? Не медленно работать будет?
m7m
Дата: 08.08.2012 14:01:46
alexey.barkalov
Dimitry Sibiryakov
CASE WHEN EXISTS(.....) THEN 1 ELSE 0 END as IS_SEL



т.е. на каждую запись MATERIALS будет срабатывать CASE в котором делается select в подчиненное таблице, так? Не медленно работать будет?


есть способ узнать наличие определенных данных в таблице не заглядывая в неё????
alexey.barkalov
Дата: 08.08.2012 14:19:49
m7m
alexey.barkalov
пропущено...


т.е. на каждую запись MATERIALS будет срабатывать CASE в котором делается select в подчиненное таблице, так? Не медленно работать будет?


есть способ узнать наличие определенных данных в таблице не заглядывая в неё????


Всем Спасибо!