Подвыборка базы данных Rose (вложенный запрос) при выборе
Я пытаюсь выполнить запрос, в котором есть подвыбор. Я настроил метод диспетчера, и все работает нормально. Единственная проблема - я не знаю, как продолжить этот запрос:
SELECT * FROM tableA WHERE
name = 'Me' AND
class='Tester' AND
( ( Department IN ( SELECT Department FROM
tableB WHERE
leader = 'Joe')
OR
Leader in ('','all') )
);
Важно помнить, что tableA и tableB - это две разные таблицы. На данный момент я достиг этого запроса:
my @leader = ('','all');
DB::tableA::Manager->get_tableA ( with_object => ['tableB'] ,
query => [ name => 'Me',
class => 'Tester',
OR => [
leader => \@leader,
Department => [*** this is
where i have to make the sub select.
Dont know how though **** ]
]
],
debug => 1);
пожалуйста, помогите, чтобы я мог добавить этот подзапрос к этому основному запросу
заранее спасибо
1 ответ
Вы можете использовать clauses
функция для включения произвольных предложений в запрос WHERE
часть.
Это будет выглядеть так
DB::tableA::Manager->get_tableA ( with_object => ['tableB'] ,
query => [
name => 'Me',
class => 'Tester',
],
clauses => ["( Department IN ( SELECT Department FROM tableB WHERE leader = 'Joe' ) OR Leader in ('','all') )"
);