Riveran
@Riveran
Astartes

Как объединить два запроса в один?

У меня есть 2 запроса которые возвращают разные значения
Первый возвращает массив объектов
SELECT JSON_AGG(src) AS parameters
			FROM (SELECT sensor_parameters.*
		  FROM sensor_parameters
		  WHERE sensor_parameters.sensortype = 'gas-meter'
		) src

Второй запрос возвращает объект
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
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)


Могу ли я добавить первый запрос ко второму, что бы на выходе получить объект у которого будет поле parameters с необходимыми данными?
  • Вопрос задан
  • 97 просмотров
Решения вопроса 1
Riveran
@Riveran Автор вопроса
Astartes
ответ
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,
				(
				 SELECT JSON_AGG(src)
				 FROM (SELECT sensor_parameters.*
				   FROM sensor_parameters
				   WHERE sensor_parameters.sensortype = sensor_instances.sensortype
				 ) src
				) AS parameters
			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 (439)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы