Якщо я серйозно не зрозумів, логіка у питанні дуже хибна
Якщо для кожного A є 20 рядків у B, 1000 рядків у A означає 20k рядків у B. Не може бути лише 100 рядків у B, якщо не існує багато-багато таблиць "AB" з 20k рядками, що містять відображення .
Отож, щоб отримати всю інформацію про те, які 20 зі 100 рядків B відображатимуться в кожному рядку A, ви також таблицю AB. Так це було б або:
- 3 набори результатів з 100, 1000 та 20k рядків та клієнт ПРИЄДНАЙТЕСЬ
- єдиний набір приєднаних результатів A-AB-B з 20k рядками
Тож "ПРИЄДНАЙТЕСЬ" у клієнта дійсно додає значення при вивченні даних. Не те, що це не погана ідея. Якщо я витягував один об’єкт із бази даних, ніж, можливо, є більш сенс розбити його на окремі набори результатів. Для дзвінка типу звіту я майже завжди вирівнював його в один.
У будь-якому випадку, я б сказав, що майже немає користі для перехресного з'єднання такої величини. Це поганий приклад.
Вам потрібно десь приєднатися, і саме в цьому RDBMS хороші. Я не хотів би працювати з жодною мавпою з кодом клієнта, яка вважає, що може зробити краще.
Задумливість:
Для приєднання до клієнта потрібні стійкі об'єкти, такі як DataTables (в .net). Якщо у вас є один сплющений набір результатів, його можна споживати через щось легше, як DataReader. Високий обсяг = багато клієнтських ресурсів, які використовуються для уникнення БД ПРИЄДНАЙТЕСЬ.