Есть в битриксе понятие "секции". Это как бы коллекция из разделов админки (со свойствами ключ-значение)
https://www.screencast.com/t/f9ESw5mYV5mP
Главное отличие от "элементов" в том, что свойства каждой секции хранятся в отдельной таблице со связью по ID "инфоблока" - который по сути описывает внешний вид и секций и элементов (является нейким таким неймспейсом) и коллекцией "элементов" одновременно
Собственно в чем беда - у нас есть 6 инфоблоков-"неймспейсов"-коллекций (напр. шины, диски, акб и еще пару штук)
Свойства каждой из категорий заданы по ID этого неймспейса. То есть структура базы битрикса примерно такая:
b_iblock - таблица с типами элементов (разделы админки)
b_iblock_section - таблица с секциями (категориями в админке)
b_utm_iblock_1_section - множественные свойства ключ-значение
b_utm_iblock_2_section - множественные свойства ключ-значение
b_utm_iblock_3_section [n...] - множественные свойства ключ-значение
b_uts_iblock_1_section - единичные свойства, где ключ это имя колонки, а значение - собственно значение
b_uts_iblock_2_section - единичные свойства, где ключ это имя колонки, а значение - собственно значение
b_uts_iblock_3_section [n...] - единичные свойства, где ключ это имя колонки, а значение - собственно значение
Ну то есть парни перемешали все в кучу и сделали помимо общепринятого реляционного вида данных ("нормальной" формы) - смесь нескольких форматов хранения, возможно тестировали удобность.
Так собственно вопрос:
Как грамотно подцепить все эти таблицы со свойствами в зависимости от выбранных секций? Типа если у секции такой-то инфоблок, подключить обе таблицы для него. Ясно что можно написать 22 left-join-а и вообще создавать запрос из PHP на-лету, но есть ли способ написать какой-то хитрый SELECT FROM SELECT чтобы он автоматически JOIN-ил одно к другому при условии наличия в выборке "еще одного" инфоблока?