Проблема, связанная с подзапросом с использованием sqlbuilder

#sql #postgresql #sqlbuilder

#sql #postgresql #sqlbuilder

Вопрос:

Мне нужен запрос, подобный этому, который генерируется с использованием функций Java sqlbuilder:

 SELECT Sum(prod) / Sum( 
       total_prod) 
                 AS PROD, 
       Max(year) AS YEAR 
FROM   b.sum SumTable
WHERE  ( SumTable.bg IN 
                (SELECT DISTINCT  
                SubSumTable.s_id 
                   FROM 
                  b.block 
                  SSumSubTable 
                                         WHERE  ( ( 
                  SSumSubTable.id IN ( 3 ) ) ) )) )
  

Но вместо этого, когда подзапрос генерируется, он создает его как:

 SELECT Sum(prod) / Sum( 
           total_prod) 
                     AS PROD, 
           Max(year) AS YEAR 
    FROM   b.sum SumTable, b.block 
                      SumTable 
    WHERE  ( SumTable.ab IN 
                    (SELECT DISTINCT  
                    SumTable.c_id 
                       FROM 
                      b.block 
                      SumSubTable 
                                             WHERE  ( ( 
                      SumSubTable.id IN ( 3 ) ) ) )) )
  

Он автоматически добавляет имя таблицы подзапроса, т. Е. блок, подлежащий замене, из-за которого запрос не работает. Любое предложение по преодолению этого было бы большим подспорьем.

Ответ №1:

У вас есть непревзойденный дополнительный) в обоих этих примерах запроса. Это помешало бы им работать в первую очередь!