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

Сущность, выпадающий список (ajax) использование функции в условии

Добавлено: 25 окт 2024, 02:59
VladimirVa
Здравствуйте.
Возможно ли использование функций (из Дополнение/инструменты) в качестве условия для Сущность, выпадающий список (ajax), например:

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

e.field_1066 in ({7})
Задача ограничить выбор для поля Сущность, выпадающий список (ajax) расположенном в дочерней сущности, значениями списка(-Глобальный список) Родительской сущности.
Где Запрос к полю списка(-Глобальный список) Родительской сущности, которая уже успешно возвращает список id выбранных записей списка(-Глобальный список), если использовать его в MySQL формуле дочерней сущности.
В этой теме тоже решалась схожая задача но так и не решилась.

Re: Сущность, выпадающий список (ajax) использование функции в условии

Добавлено: 25 окт 2024, 07:38
Fait
Функция же просто SELECT * FROM...
Пропишите там же, да и всё будет работать.
Получится что-то такое:

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

e.field_1066 in (SELECT field_777 FROM app_entity_55 WHERE id=[parent_item_id])
777 - ID поля со списком
55 - ID родительской сущности

Re: Сущность, выпадающий список (ajax) использование функции в условии

Добавлено: 25 окт 2024, 14:16
VladimirVa
Fait писал(а): 25 окт 2024, 07:38 Функция же просто SELECT * FROM...
Пропишите там же, да и всё будет работать.
Получится что-то такое:

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

e.field_1066 in (SELECT field_777 FROM app_entity_55 WHERE id=[parent_item_id])
777 - ID поля со списком
55 - ID родительской сущности
Спасибо, но это почему-то работает если в родительском поле только одно значение из списка, а если поле со множественным выбором и выбрано несколько записей, оно перестаёт работать.

Re: Сущность, выпадающий список (ajax) использование функции в условии

Добавлено: 27 окт 2024, 06:14
Antonyous99
find_in_set вместо in

Re: Сущность, выпадающий список (ajax) использование функции в условии

Добавлено: 27 окт 2024, 21:39
VladimirVa
Antonyous99 писал(а): 27 окт 2024, 06:14 find_in_set вместо in
Спасибо, find_in_set работает, запрос:

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

find_in_set (e.field_1066, (SELECT field_1064 FROM app_entity_111 WHERE id=[parent_item_id]))
Итог:
Выражение:

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

e.field_1066 in (SELECT field_1064 FROM app_entity_111 WHERE id=[parent_item_id])
Ограничивает Сущности значениями которые точно совпадают, для простоты e.field_1066 = field_1064, т.е. если в списке field_1064 выбрано 2 значения, Сущности будут ограничены только теми записями, в поле e.field_1066 которого будут ровно те же 2 значения что и в field_1064;
Выражение:

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

find_in_set (e.field_1066, (SELECT field_1064 FROM app_entity_111 WHERE id=[parent_item_id]))
Ограничивает Сущности значениями которые присутствуют в списке field_1064, но не равны этому списку, т.е. field_1066 = field_1064 не выполняется;
Выражение:

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

find_in_set (e.field_1066, (SELECT field_1064 FROM app_entity_111 WHERE id=[parent_item_id]))
OR
e.field_1066 in (SELECT field_1064 FROM app_entity_111 WHERE id=[parent_item_id])
Ограничивает Сущности значениями которые присутствуют в списке field_1064 или значениями которые точно совпадают e.field_1066 = field_1064.