注册

多查询语句笛卡尔积,报错不支持的语句类型

哈哈 2024/05/07 448 1 已解决

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】: 8
【操作系统】:CENTOS
【CPU】:
【问题描述】*:代码目的为查询列表,列表中有一个字段是json类型的数组,并且要判断数组每个元素的year项。写了两个sql方案,在windows里均可查询得到,但在centos里就不行。

select car.vehicle_id, car.plate_no, car.company_code, c.company_name, TO_CHAR(car.use_date, 'YYYY-MM-DD') AS use_date, car.load_specifications, car.manage_range, car.driver_name, car.driver_phone, car.rectification, car.vehicle_license_file_id, ( SELECT value from (select * from cylinder.car)as q, jsonb_array_elements(q.insurance_license_files) as value WHERE value ->> 'year' = datepart(year, CURRENT_DATE) and q.vehicle_id ='00000' limit 1) AS insurance_license_files, car.driving_license_file_id, car.car_configuration, car.rectification_before_photo_id, car.rectification_after_photo_id, car.geom, car.manage_area from cylinder.car as car left join cylinder.company as c on car.company_code = c.code where car.vehicle_id = '00000'

参照其他问答说把select拆出来写,就写成了笛卡尔积的形式,依然不行。

select vehicle_id, plate_no, company_code, company_name,use_date, load_specifications, manage_range, driver_name, driver_phone, rectification, vehicle_license_file_id, driving_license_file_id, car_configuration, rectification_before_photo_id, rectification_after_photo_id, geom, manage_area, b."VALUE" as insurance_license_files from (select car.vehicle_id, car.plate_no, car.company_code, c.company_name, TO_CHAR(car.use_date, 'YYYY-MM-DD') AS use_date, car.load_specifications, car.manage_range, car.driver_name, car.driver_phone, car.rectification, car.vehicle_license_file_id, car.driving_license_file_id, car.car_configuration, car.rectification_before_photo_id, car.rectification_after_photo_id, car.geom, car.manage_area from cylinder.car as car left join cylinder.company as c on car.company_code = c.code WHERE car.vehicle_id ='00000') a, ( SELECT "VALUE" from (select * from cylinder.car)as q, jsonb_array_elements(q.insurance_license_files) as "VALUE" WHERE "VALUE" ->> 'year' = datepart(year, CURRENT_DATE) and q.vehicle_id ='00000' LIMIT 1 ) AS b;

windows下:
image.png
linux下:
image.png

回答 0
暂无回答
扫一扫
联系客服