sql >> Database >  >> RDS >> Mysql

Rijen bijwerken in jOOQ met joins

Dat denk je waarschijnlijk omdat er geen UpdateJoinStep . is typ ongeveer alsof er een SelectJoinStep is dat het gebruik van een join met updates niet mogelijk is in jOOQ. Maar pas op dat SelectJoinStep is louter gemak. De JOIN operator is een operator die twee tabellen verbindt, geen sleutelwoord in SQL. Dus jOOQ ondersteunt het als operator op de Table type. Gebruik uw SQL-update als voorbeeld:

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"))

U kunt de bovenstaande tabeluitdrukking doorgeven aan DSLContext.update(Table) zoals elke andere. Ik vermoed dat dit uw resterende vraag overbodig maakt?




  1. hoe kan ik het totale aantal van dezelfde naam van verschillende kolommen in één tabel in MySQL krijgen?

  2. Hoe kan ik een exemplaar van het laatst toegevoegde item ophalen?

  3. Unieke samengestelde sleutel van SQL Server van twee velden met automatische verhoging van het tweede veld

  4. Database migreren van Postgres naar MySQL