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

Вопросы по свободной ГИС QGIS. Сообщения об ошибках, предложения по улучшению, локализация.
Аватара пользователя
chet2
Участник
Сообщения: 54
Зарегистрирован: 08 дек 2016, 09:46
Репутация: 1

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

Сообщение chet2 » 14 ноя 2019, 14:48

Ищу способ подписать объект значением из другой строки таблицы.

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

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

Аватара пользователя
chet2
Участник
Сообщения: 54
Зарегистрирован: 08 дек 2016, 09:46
Репутация: 1

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

Сообщение chet2 » 15 ноя 2019, 07:52

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

trir
Гуру
Сообщения: 4662
Зарегистрирован: 09 апр 2010, 19:30
Статьи: 1
Репутация: 877
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

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

Сообщение trir » 15 ноя 2019, 08:04

просто добавь ещё одно поле... SQL'ем
id name descript descript1
1 Object1 Description1
2 Object2 Description2 Description1

Аватара пользователя
chet2
Участник
Сообщения: 54
Зарегистрирован: 08 дек 2016, 09:46
Репутация: 1

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

Сообщение chet2 » 15 ноя 2019, 08:08

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

trir
Гуру
Сообщения: 4662
Зарегистрирован: 09 апр 2010, 19:30
Статьи: 1
Репутация: 877
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

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

Сообщение trir » 15 ноя 2019, 08:10

сделай представление (View)

Аватара пользователя
chet2
Участник
Сообщения: 54
Зарегистрирован: 08 дек 2016, 09:46
Репутация: 1

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

Сообщение chet2 » 15 ноя 2019, 08:20

trir, представление – это первое о чем я подумал.
Но такой вариант мне представляется сложным в реализации.

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

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

trir
Гуру
Сообщения: 4662
Зарегистрирован: 09 апр 2010, 19:30
Статьи: 1
Репутация: 877
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

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

Сообщение trir » 15 ноя 2019, 08:24

вообще не вижу проблем - напиши функцию

Аватара пользователя
chet2
Участник
Сообщения: 54
Зарегистрирован: 08 дек 2016, 09:46
Репутация: 1

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

Сообщение chet2 » 15 ноя 2019, 09:01

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

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

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

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

Аватара пользователя
chet2
Участник
Сообщения: 54
Зарегистрирован: 08 дек 2016, 09:46
Репутация: 1

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

Сообщение chet2 » 15 ноя 2019, 09:38

Начал тесты с такого кода:

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

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

trir
Гуру
Сообщения: 4662
Зарегистрирован: 09 апр 2010, 19:30
Статьи: 1
Репутация: 877
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

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

Сообщение trir » 15 ноя 2019, 09:48

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

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

Аватара пользователя
chet2
Участник
Сообщения: 54
Зарегистрирован: 08 дек 2016, 09:46
Репутация: 1

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

Сообщение chet2 » 15 ноя 2019, 09:52

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

freeExec
Гуру
Сообщения: 1003
Зарегистрирован: 23 апр 2011, 10:32
Проекты: 1
Репутация: 166
Откуда: Ульяновск

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

Сообщение freeExec » 15 ноя 2019, 09:58

Да вся затея попахивает, подписывать дорогу названием водоёма, это что?

trir
Гуру
Сообщения: 4662
Зарегистрирован: 09 апр 2010, 19:30
Статьи: 1
Репутация: 877
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

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

Сообщение trir » 15 ноя 2019, 09:59

добавь ещё поле в 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)	
	

Аватара пользователя
chet2
Участник
Сообщения: 54
Зарегистрирован: 08 дек 2016, 09:46
Репутация: 1

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

Сообщение chet2 » 15 ноя 2019, 13:05

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

Аватара пользователя
chet2
Участник
Сообщения: 54
Зарегистрирован: 08 дек 2016, 09:46
Репутация: 1

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

Сообщение chet2 » 15 ноя 2019, 13:08

trir, спасибо большое что помогаете.

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

Ответить

Вернуться в «QGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя