@d6core

Как правильно делать выборку из 2х таблиц с помощью API Bitrix?

К примеру есть таблица (ИБ) с фруктами, где хранятся имена фруктов
фрукт
фрукт1
фрукт2

Также есть таблица (ИБ Хайлоад, все поля с привязкой к ИБ выше)
фрукт похожие другие
фрукт 1 фрукт5 фрукт8
фрукт 1 фрукт3 фрукт1
фрукт 2 фрукт6 фрукт2
фрукт 2 фрукт4 фрукт6

Нужно выбрать из таблицы похожие для фрукта 1, похожие для фрукта 2, другие для фрукта 1 и другие для фрукта 2

я делаю так, например похожие для фрукта1
Table2::getList(array(
    'select'  => ['*'],
    'filter'  => 'фрукт1',
));

//результат массив с id, но нужно же получить имена фруктов,
//поэтому делаю второй запрос
Table1::getList(array(
    'select'  => ['*'],
    'filter'  => [ID=>'массив id похожих'],
));

//аналогичным образом делаю для остальных вариантов


итого
если искать инфу по 2-м фруктам - это фрукт1 и фрукт2, то получается
2 getList по этим фруктам, а потом еще один GetList на случай, похожие другие
В итоге в коде аж 6 GetList. Все работает, просто хочется сделать рефакторинг.

У меня есть идея делать один раз getList из таблицы 2, а потом просто с помощью array_filter получать нужные данные. Затем сделать 1 раз GetList из таблицы 1 и связать данные путем каких то манипуляций с ними.
  • Вопрос задан
  • 102 просмотра
Пригласить эксперта
Ответы на вопрос 1
pro6ka
@pro6ka
web developer
Вот здесь посмотреите https://dev.1c-bitrix.ru/learning/course/index.php...
По сути Вам нужно сформировать запрос в Table1 и при-join-ить к ней Table2, тогда сможите в одном запросе собрать из 2-х таблиц все необходимые поля.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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