Страница 1 из 2

Подписать объект значением из другой строки

Добавлено: 14 ноя 2019, 14:48
chet2
Ищу способ подписать объект значением из другой строки таблицы.

Пример таблицы:
id name descript
1 Object1 Description1
2 Object2 Description2

Подскажите пожалуйста, как мне с помощью выражения подписать Object2 значением “Description1”?

Re: Подписать объект значением из другой строки

Добавлено: 15 ноя 2019, 07:52
chet2
Если можно было бы использовать SQL для подписи объектов, то вопрос наверное был бы решен.
Но я так понял, что такого функционала нет.

Re: Подписать объект значением из другой строки

Добавлено: 15 ноя 2019, 08:04
trir
просто добавь ещё одно поле... SQL'ем
id name descript descript1
1 Object1 Description1
2 Object2 Description2 Description1

Re: Подписать объект значением из другой строки

Добавлено: 15 ноя 2019, 08:08
chet2
trir, cпасибо за ответ.
Такой вариант не подойдет.
Сторонняя программа будет обновлять данные в ограниченном количестве строк.

Re: Подписать объект значением из другой строки

Добавлено: 15 ноя 2019, 08:10
trir
сделай представление (View)

Re: Подписать объект значением из другой строки

Добавлено: 15 ноя 2019, 08:20
chet2
trir, представление – это первое о чем я подумал.
Но такой вариант мне представляется сложным в реализации.

Строка (объект) содержит 11 полей. Значениями из 9 полей надо подписать другие 9 объектов.
Так, чтобы при изменении изначальных полей менялись и подписи у других 9 объектов.
Строк много.
Да, задача специфическая, я понимаю.

Поэтому я ищу именно сабж.
Гуглую про конструкцию вида attribute(get_feature, но пока не понял что это.

Re: Подписать объект значением из другой строки

Добавлено: 15 ноя 2019, 08:24
trir
вообще не вижу проблем - напиши функцию

Re: Подписать объект значением из другой строки

Добавлено: 15 ноя 2019, 09:01
chet2
trir, вы имеете ввиду функцию для представления?
Спойлер
Изображение
Таблица objects содержит значения, который будут динамически обновляться.
В таблице additional_objects будут находиться объекты, которые необходимо подписать.

Получается, что надо создать представление, в котором будут объединяться данные из двух таблиц. Объединение будет происходить по столбцу id.

Представление labels будет непосредственно служить для подписи объектов. Подпись будет браться из столбца parameters.

Получается, что представление labels должно выглядеть как-то так:
Спойлер
Изображение
trir, взгляните пожалуйста на таблицы. Вы такой вариант имеете в виду?

Re: Подписать объект значением из другой строки

Добавлено: 15 ноя 2019, 09:38
chet2
Начал тесты с такого кода:

Код: Выделить всё

SELECT * 
FROM additional_objects, objects
WHERE additional_objects.id_from_objects = objects.id
Честно говоря не соображу как мне в конечном представлении проставить значения в столбце parameters.

Re: Подписать объект значением из другой строки

Добавлено: 15 ноя 2019, 09:48
trir

Код: Выделить всё

SELECT aobj.id, aobj.name, obj.parameter1
FROM additional_objects as aobj LEFT JOIN objects as obj
	on aobj.id_from_objects = obj.id
как ты определишь - какой параметр какому объекту?

Re: Подписать объект значением из другой строки

Добавлено: 15 ноя 2019, 09:52
chet2
trir, >как ты определишь - какой параметр какому объекту?
Вы правы. Об этом я не подумал.
Честно говоря не знаю как поступить.

Re: Подписать объект значением из другой строки

Добавлено: 15 ноя 2019, 09:58
freeExec
Да вся затея попахивает, подписывать дорогу названием водоёма, это что?

Re: Подписать объект значением из другой строки

Добавлено: 15 ноя 2019, 09:59
trir
добавь ещё поле в additional_objects и там укажи номер

Код: Выделить всё

(SELECT aobj.id, aobj.name, obj.parameter1 as par
FROM additional_objects as aobj LEFT JOIN objects as obj
	on aobj.id_from_objects = obj.id and aobj.par_id=1)
UNION 	
(SELECT aobj.id, aobj.name, obj.parameter2 as par
FROM additional_objects as aobj LEFT JOIN objects as obj
	on aobj.id_from_objects = obj.id and aobj.par_id=2)	
UNION 	
(SELECT aobj.id, aobj.name, obj.parameter3 as par
FROM additional_objects as aobj LEFT JOIN objects as obj
	on aobj.id_from_objects = obj.id and aobj.par_id=3)	
	

Re: Подписать объект значением из другой строки

Добавлено: 15 ноя 2019, 13:05
chet2
freeExec, да, вы все верно поняли))
Просто нужно отделить таблицу со сзначениями от подписей объектов.
Таблица со значениями будет обновляться время от времени.

Re: Подписать объект значением из другой строки

Добавлено: 15 ноя 2019, 13:08
chet2
trir, спасибо большое что помогаете.

Может быть я балбес снова что-то напутал, но при выполнении запроса возвращается:
Спойлер
Изображение
Таблица objects:
Спойлер
Изображение
Таблица additional_objects:
Спойлер
Изображение