module Joinable
Overview
Handles all types of JOIN clauses.
Defined in:
query/joinable.crInstance Method Summary
-
#inner(table_or_alias : Symbol | Hash(Symbol, Symbol), on : Hash(CQL::BaseColumn, CQL::BaseColumn | DB::Any))
Adds an INNER JOIN with an explicit ON condition (Hash).
-
#inner(table_or_alias : Symbol | Hash(Symbol, Symbol), &)
Adds an INNER JOIN with an explicit ON condition (Block).
-
#joins(*tables_to_join : Symbol)
Adds inferred INNER JOINs using splat arguments for table names.
-
#joins(**tables_to_join)
Adds inferred INNER JOINs using keyword arguments for aliases.
-
#left(table_or_alias : Symbol | Hash(Symbol, Symbol), on : Hash(CQL::BaseColumn, CQL::BaseColumn | DB::Any))
Adds a LEFT JOIN with an explicit ON condition (Hash).
-
#left(table_or_alias : Symbol | Hash(Symbol, Symbol), &)
Adds a LEFT JOIN with an explicit ON condition (Block).
-
#left_joins(*tables_to_join : Symbol)
Adds inferred LEFT JOINs using splat arguments for table names.
-
#left_joins(**tables_to_join)
Adds inferred LEFT JOINs using keyword arguments for aliases.
-
#right(table_or_alias : Symbol | Hash(Symbol, Symbol), on : Hash(CQL::BaseColumn, CQL::BaseColumn | DB::Any))
Adds a RIGHT JOIN with an explicit ON condition (Hash).
-
#right(table_or_alias : Symbol | Hash(Symbol, Symbol), &)
Adds a RIGHT JOIN with an explicit ON condition (Block).
-
#right_joins(*tables_to_join : Symbol)
Adds inferred RIGHT JOINs using splat arguments for table names.
-
#right_joins(**tables_to_join)
Adds inferred RIGHT JOINs using keyword arguments for aliases.
Instance Method Detail
Adds an INNER JOIN with an explicit ON condition (Hash).
Example Adding an INNER JOIN with an explicit ON condition
query.inner(users, on: {users.id: posts.user_id})
Adds an INNER JOIN with an explicit ON condition (Block).
Example Adding an INNER JOIN with an explicit ON condition using a block
query.inner(users) do |builder|
builder.on(users.id == posts.user_id)
end
Adds inferred INNER JOINs using splat arguments for table names.
Example Adding inferred INNER JOINs using splat arguments for table names
query.joins(:users, :posts)
Adds inferred INNER JOINs using keyword arguments for aliases.
Example Adding inferred INNER JOINs using keyword arguments for aliases
query.joins(users: :posts)
Adds a LEFT JOIN with an explicit ON condition (Hash).
Example Adding a LEFT JOIN with an explicit ON condition
query.left(users, on: {users.id: posts.user_id})
Adds a LEFT JOIN with an explicit ON condition (Block).
Example Adding a LEFT JOIN with an explicit ON condition using a block
query.left(users) do |builder|
builder.on(users.id == posts.user_id)
end
Adds inferred LEFT JOINs using splat arguments for table names.
Example Adding inferred LEFT JOINs using splat arguments for table names
query.joins(:users, :posts)
Adds inferred LEFT JOINs using keyword arguments for aliases.
Example Adding inferred LEFT JOINs using keyword arguments for aliases
query.joins(users: :posts)
Adds a RIGHT JOIN with an explicit ON condition (Hash).
Example Adding a RIGHT JOIN with an explicit ON condition
query.right(users, on: {users.id: posts.user_id})
Adds a RIGHT JOIN with an explicit ON condition (Block).
Example Adding a RIGHT JOIN with an explicit ON condition using a block
query.right(users) do |builder|
builder.on(users.id == posts.user_id)
end
Adds inferred RIGHT JOINs using splat arguments for table names.
Example Adding inferred RIGHT JOINs using splat arguments for table names
query.joins(:users, :posts)
Adds inferred RIGHT JOINs using keyword arguments for aliases.
Example Adding inferred RIGHT JOINs using keyword arguments for aliases
query.joins(users: :posts)