JOOQ выбирает столбцы из 2 таблиц при объединении 4 таблицMySql

Форум по Mysql
Anonymous
JOOQ выбирает столбцы из 2 таблиц при объединении 4 таблиц

Сообщение Anonymous »

С запросом вида:

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

context.select()
.from(TABLE_ONE)
.join(TABLE_TWO).on(TABLE_ONE.foo == TABLE_TWO.foo)
.join(TABLE_THREE).on(TABLE_TWO.bar == TABLE_THREE.bar)
.join(TABLE_FOUR).on(TABLE_THREE.bat == TABLE_FOUR.bat)
.where(TABLE_FOUR.baz.eq(42));

мы возвращаем все перечисляемые столбцы всех четырех таблиц типобезопасным способом. Эта форма запроса сейчас работает для моей команды.
Мне нужно изменить это, чтобы возвращать столбцы только таблиц ONE и TWO.
Я пробовал:

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

context.select(TABLE_ONE.asterisk(), TABLE_TWO.asterisk())
.from(TABLE_ONE)
.join(TABLE_TWO).on(TABLE_ONE.foo == TABLE_TWO.foo)
.join(TABLE_THREE).on(TABLE_TWO.bar == TABLE_THREE.bar)
.join(TABLE_FOUR).on(TABLE_THREE.bat == TABLE_FOUR.bat)
.where(TABLE_FOUR.baz.eq(42));

Это близко к достижению цели, но это небезопасный способ, который (как мне говорит Интернет) не будет работать с миграциями. Есть ли способ сделать это безопасно? Я представлял себе что-то вроде:

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

context.select(TABLE_ONE.fields(), TABLE_TWO.fields())
.from(TABLE_ONE)
.join(TABLE_TWO).on(TABLE_ONE.foo == TABLE_TWO.foo)
.join(TABLE_THREE).on(TABLE_TWO.bar == TABLE_THREE.bar)
.join(TABLE_FOUR).on(TABLE_THREE.bat == TABLE_FOUR.bat)
.where(TABLE_FOUR.baz.eq(42));

но, насколько я могу судить, ничего подобного не существует

Подробнее здесь: https://stackoverflow.com/questions/793 ... are-joined

Вернуться в «MySql»