sql >> Databasteknik >  >> RDS >> Mysql

Uppdaterar rader i jOOQ med joins

Du tänker förmodligen det eftersom det inte finns någon UpdateJoinStep skriv ungefär som att det finns ett SelectJoinStep att det inte är möjligt att använda en join med uppdateringar i jOOQ. Men tänk på att SelectJoinStep är bara bekvämlighet. JOIN operator är en operator som kopplar samman två tabeller, inte ett nyckelord i SQL. Således stöder jOOQ det som en operator i Table typ. Använd din SQL-uppdatering som ett exempel:

Field<Long> userId = DSL.field("user_nested.id", Long.class);
create
    .update(USER.join(TEAM).on(TEAM.ID.eq(USER.TEAM_ID)))
    .set(USER.NAME, (concat(USER.NAME, "some text")))
    .where(TEAM.STATE.equal("test"))

Du kan skicka ovanstående tabelluttryck till DSLContext.update(Table) som alla andra. Jag misstänker att detta föråldrar din återstående fråga?




  1. Hur mappar jag till och från en komplex typ i EF4.3 code-first?

  2. MySQL-GRUPP Antal

  3. MySql 8.0.15 installationsfel Ogiltig servermall

  4. Använder SQL LIKE och IN tillsammans