class Arel::Visitors::MySQL

def prepare_update_statement(o)

these, we must use a subquery.
query. However, this does not allow for LIMIT, OFFSET and ORDER. To support
In the simple case, MySQL allows us to place JOINs directly into the UPDATE
def prepare_update_statement(o)
  if o.offset || has_group_by_and_having?(o) ||
    has_join_sources?(o) && has_limit_or_offset_or_orders?(o)
    super
  else
    o
  end
end