Этот вопрос закрыт для ответов, так как повторяет вопрос Как решить ошибку subquery must return only one column?
Riveran
@Riveran
Astartes

Как получить массив с множеством объектов из sql запроса?

В результате sql запроса хочу получить объект с полем test которое будет массивом и будет содержать в себе различные объекты.

SELECT  sensor_instances.*,
    row_to_json((SELECT d
      FROM  (SELECT groups.*) d
    )) AS group,
    row_to_json((SELECT a
      FROM (SELECT addresses.*) a
    )) AS currentAddress,
    ARRAY(
      SELECT sensor_parameters.*
      FROM sensor_parameters
      WHERE sensor_parameters.sensortype IN (sensor_instances.sensortype)
    ) AS test
FROM sensor_instances
LEFT JOIN groups ON groups.id = sensor_instances.groupid 
LEFT JOIN addresses ON sensor_instances.addressid = addresses.id
WHERE sensor_instances.id IN (89)


Но в результате запрос возвращает ошибку

Query 1 ERROR: ERROR:  subquery must return only one column
LINE 8:   ARRAY(


Может кто то знает как получить в поле test массив с перечнем объектов?
необходимо получить следующую структуру:
{
  test: [
  {},
  {}
 ]
}
  • Вопрос задан
  • 683 просмотра
Ответы на вопрос 1
tumbler
@tumbler
бекенд-разработчик на python
ARRAY(
      SELECT sensor_parameters.*
      FROM sensor_parameters
 ...

У Вас массив многомерный, такое постгрес не ожидает. Оставьте внутри 1 поле
Ответ написан
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы