Страница 1 из 1
Cвязать записи по MySQL запросу
Добавлено: 26 мар 2021, 14:00
nruslan2
Есть 3 сущности, в которых есть по 2-и поля Связанные записи.
Те. Сущность 1 имеет связанные записи с Сущностью 2 и 3, Сущность 2 - 1 и 3, Сущность 3 - 1 и 2.
Вопрос можно как то в автоматизации прописать используя я так понимаю - Cвязать записи по MySQL запросу - привязать Сущности между собой используя в условиях связь уже имеющейся сущности, те:
Запись в Сущность 1 имеет привязку к сущности 2, но к 3 нет. Но Запись вСущности 2 привязана 3. Как сделать так чтобы Сущность 1 была привязана к сущности 3! возможно ли вообще провернуть данный фокус? (просто сослаться на поле Связанные записи нельзя я так понял там пустота хранится!)
Re: Cвязать записи по MySQL запросу
Добавлено: 26 мар 2021, 14:24
alcompstudio
Добрый день!
Не понял тут:
Сущность 1 имеет связанные записи с Сущностью 2 и 3
и в то же время
Сущность 1 имеет привязку к сущности 2, но к 3 нет
Связанные записи - это как бы тип связи "многие-ко-многим", т.е. установленная связь уже двустороняя - если привязать записи друг к другу хотя бы с "одной стороны", то с другой будет уже видна противоположная запись (даже если мы добавим идентичное поле Связанные записи уже после связывания в противоположную сущность).
Поэтому вам нужно сделать всевозможные связи между всеми сущностями, а там - через автоматизацию "Cвязать записи по MySQL запросу" можно привязывать уже записи по условию (хоть 1 к 2, хоть 1 к 3 и т.п.). Если, конечно, я правильно понял ваш вопрос.
Re: Cвязать записи по MySQL запросу
Добавлено: 26 мар 2021, 16:14
nruslan2
Поправил !забыл приписать что Запись имеет а не сущность!
Поэтому вам нужно сделать всевозможные связи между всеми сущностями, а там - через автоматизацию "Cвязать записи по MySQL запросу" можно привязывать уже записи по условию (хоть 1 к 2, хоть 1 к 3 и т.п.). Если, конечно, я правильно понял ваш вопрос.
Ну вот как раз это и хочется!! но условие это наличие связи с другой сущностью)
Пример:
Есть запись в "Сущность 1" - которая имеет Связь с определенной записью в "Сущность 2", при этом запись в "Сущность 2" имеет связь с записью в "Сущность 3". (В конфигураторе Сущность 1 имеет настроены поля связи с сущностью 2 и сущностью 3). Те руками в записи "Сущность 1" можно выбрать руками связь с записью в Сущностью 3. (но это делать надо руками, а так как есть уже связь с записью с Сущность 2 которая в свою очередь имеет запись сущность 3 то было бы удобно не руками а автоматом присвоить!) Вопрос какое условие надо прописать) как оно может выглядит) - ссылаться на поле связь - не дало ничего кроме ошибки) (
писал просто [125]=field_205
где 125 - поле связь с записью в Сущности 2 (настройка в Сущности 1)
205 - поле связи с записью в Сущности 2 (настройка в Сущности 3)
Re: Cвязать записи по MySQL запросу
Добавлено: 26 мар 2021, 16:33
alcompstudio
А, вам нужно связать запись сущности 3 с сущностью 1, через их взаимосвязь с сущностью 2? Если так, то не подскажу, есть ли возможность так подвязывать... Связанные записи связываются через специальную таблицу-посредник, в БД, возможно как-то в ней получится вытащить такую связь-цепочку.
Re: Cвязать записи по MySQL запросу
Добавлено: 26 мар 2021, 16:44
nruslan2
alcompstudio писал(а): 26 мар 2021, 16:33
А, вам нужно связать запись сущности 3 с сущностью 1, через их взаимосвязь с сущностью 2? Если так, то не подскажу, есть ли возможность так подвязывать... Связанные записи связываются через специальную таблицу-посредник, в БД, возможно как-то в ней получится вытащить такую связь-цепочку.
Именно. Вот в этом то и вопрос. (по идеи надо как то хитро прописать по идеи). тут поможет только Сергей)
Re: Cвязать записи по MySQL запросу
Добавлено: 28 мар 2021, 00:32
nruslan2
Практически наверно реализовал данный запрос, но уперся в проблему:
Почему данный запрос выводит только строку 2 (Данные таблицы приведены на картинке)
select * from app_entity_80 where id in (
(select GROUP_CONCAT(one.entity_80_items_id SEPARATOR ",") from app_related_items_73_80 as one where one.entity_73_items_id = 1)
)
в то время как вложенный запрос (select GROUP_CONCAT(one.entity_80_items_id SEPARATOR ",") from app_related_items_73_80 as one where one.entity_73_items_id = 1) - точно выводит данные 2,3.
Ну и соответственно если заменить подзапрос цифрами, то выведется как раз 2,3)
Re: Cвязать записи по MySQL запросу
Добавлено: 30 мар 2021, 12:23
nruslan2
Вопрос снимаю - все заработало - ответ на вопрос: Пишите сложные SQL запросы
ЗЫ хотя мне интересно почему верхняя строка кода не срабатывает)