method
join_to_update
v5.0.0.1 -
Show latest stable
- Class:
ActiveRecord::ConnectionAdapters
join_to_update(update, select, key)public
In the simple case, MySQL allows us to place JOINs directly into the UPDATE query. However, this does not allow for LIMIT, OFFSET and ORDER. To support these, we must use a subquery.
# File activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb, line 248
def join_to_update(update, select, key) # :nodoc:
if select.limit || select.offset || select.orders.any?
super
else
update.table select.source
update.wheres = select.constraints
end
end Related methods
- Instance methods
- add_index
- add_sql_comment!
- begin_db_transaction
- begin_isolated_db_transaction
- bulk_change_table
- case_sensitive_comparison
- change_column
- change_column_default
- change_column_null
- charset
- clear_cache!
- collation
- columns
- columns_for_distinct
- commit_db_transaction
- create_database
- create_table
- current_database
- data_source_exists?
- data_sources
- disable_referential_integrity
- drop_database
- drop_table
- each_hash
- empty_insert_statement_value
- error_number
- exec_rollback_db_transaction
- execute
- execute_and_free
- explain
- foreign_keys
- get_advisory_lock
- index_algorithms
- indexes
- internal_string_options_for_primary_key
- join_to_update
- mariadb?
- native_database_types
- new_column
- primary_keys
- recreate_database
- release_advisory_lock
- rename_column
- rename_index
- rename_table
- show_variable
- strict_mode?
- supports_advisory_locks?
- supports_bulk_alter?
- supports_datetime_with_precision?
- supports_explain?
- supports_foreign_keys?
- supports_index_sort_order?
- supports_indexes_in_create?
- supports_migrations?
- supports_primary_key?
- supports_statement_cache?
- supports_transaction_isolation?
- supports_views?
- table_comment
- table_exists?
- table_options
- tables
- truncate
- type_to_sql
- valid_type?
- version
- view_exists?
- views
- Class methods
- new
- Protected methods
-
add_column_sql -
add_index_length -
add_index_sql -
add_timestamps_sql -
change_column_sql -
extract_precision -
fetch_type_metadata -
initialize_type_map -
quoted_columns_for_index -
register_integer_type -
remove_column_sql -
remove_columns_sql -
remove_index_sql -
remove_timestamps_sql -
rename_column_sql -
translate_exception - Private methods
-
binary_to_sql -
can_perform_case_insensitive_comparison_for? -
column_definitions -
configure_connection -
create_table_definition -
create_table_info -
create_table_info_cache -
extract_foreign_key_action -
extract_schema_qualified_name -
integer_to_sql -
subquery_for -
supports_rename_index? -
text_to_sql