Quero unir colunas de várias tabelas. Para uma tabela, a junção funciona bem
select org.catalog_truck.plate_number as "Госномер грузовика",
shift_id as "ID смены",
trip_id as "ID рейса",
*
from core.monitoring_stages
join org.catalog_truck
on vehicle_id = org.catalog_truck.catalog_truck_id
where gen_id = (SELECT max(gen_id)
FROM core.monitoring_tripmachine_generation
WHERE ready=true and timerange_from > '2024-09-23 00:00:00.000 +0300' and timerange_to < '2024-09-23 23:59:59.000 +0300')
ORDER by dtstart
Mas para duas junções (e duas seleções nas duas primeiras linhas, tenho um erro)
select org.catalog_truck.plate_number as "Госномер грузовика",
select org.catalog_field.name as "Поле погрузки", <--- select for the second join (error in this line)
shift_id as "ID смены",
trip_id as "ID рейса",
*
from core.monitoring_stages
join org.catalog_truck
on vehicle_id = org.catalog_truck.catalog_truck_id
where gen_id = (SELECT max(gen_id)
from core.monitoring_stages <--- second join
join org.catalog_field cf
on field_id = org.catalog_field.name
FROM core.monitoring_tripmachine_generation
WHERE ready=true and timerange_from > '2024-09-23 00:00:00.000 +0300' and timerange_to < '2024-09-23 23:59:59.000 +0300')
ORDER by dtstart
Texto de erro:
Erro SQL [42601]: ERRO: erro de sintaxe em ou próximo à posição "select": 66
Posição de erro: linha: 2 pos: 65
Como aplicar duas seleções para duas junções?
Considerar:
Você não precisa usar múltiplas seleções, depois de unir duas (ou mais) tabelas, você pode selecionar qualquer coisa da tabela resultante, como você já fez com monitoring_stages (se não entendi mal os esquemas da sua tabela):