BigQuery вверху получает набор продуктов и вложенных связанных таблиц. Затем я применяю фильтрацию в неудачной попытке создать шаблон спецификации. Это код фильтра. В запросе есть три таблицы, и я хочу отфильтровать верхний запрос по значению, вложенному в нижний запрос. Как я уже сказал, в настоящее время это дает желаемые результаты.
Однако .Contains() создает предложение SQL WHERE EXISTS() для каждого. Нам действительно нужен только один, но я не знаю, как заставить внутренний идентификатор сравниваться с внешним идентификатором.
from p in bigQuery // Root table
where ( from pp in p.LPP // Level 1 nested table
where (from pv in pp.LPV // Level 2 nested table
where pv.colorid == intValue // Our filter value
select p.id).Contains(p.id) // Where exists
select p.id).Contains(p.id) // Where exists
select p;
Есть предположения? Это создает оператор SQL из 900 строк как есть, и пока у нас есть только один фильтр.