Меня интересуют результаты, найденные в таблице g, которая разделяет ключ sample_name с таблицами s
и l
. В этом вопросе таблицы представляют собой
s
- выборки,
p
- проекты,
l
- анализы и
g
, анализ г,
все в схемеa
.
В интересах оптимизации, я хочу искать таблицу g только после подтверждения того, что l.analysis_g
является NOT NULL
.
Учитывая : единственная информация, которую я начинаюс именами проектов. Таблица проекта p
связана с другими таблицами таблицей образцов s
. s
связан с каждой таблицей. Таблица l
содержит типы анализа, и каждый столбец имеет значение NULL
или 1.
В приведенном ниже примере я пытаюсь рассмотреть случай, но я понимаю, что это может быть совершенно неверно.
SELECT s.sample_name,
s.project_name,
g.*
FROM a.samples s
JOIN a.analyses l
ON s.sample_name = l.sample_name
JOIN a.analysis_g g
ON s.sample_name = g.sample_name
WHERE s.project_name IN (SELECT p.project_name
FROM a.projects p
WHERE p.project_name_other
IN ('PROJ_1',
'PROJ_2'))
;