> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kinetica.com/llms.txt
> Use this file to discover all available pages before exploring further.

# create_join_table

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/generated/create_join_table.rs#L39-L54)
pub async fn [create\_join\_table](https://docs.kinetica.com/content/api/rust/gpudb/struct.Kinetica/create-join-table.md#method.create_join_table)( \&self, join\_table\_name: [String](https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html), table\_names: [Vec](https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html)\<[String](https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html)>, column\_names: [Vec](https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html)\<[String](https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html)>, expressions: [Vec](https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html)\<[String](https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html)>, ) -> [Result](https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html)\<[CreateJoinTableResponse](https://docs.kinetica.com/content/api/rust/generated/api/struct.CreateJoinTableResponse.md), [KineticaError](https://docs.kinetica.com/content/api/rust/errors/enum.KineticaError.md)>

Create a table that is the result of a SQL JOINCreates a table that is the result of a SQL JOIN.For join details and examples see: Joins. For limitations, see Join Limitations and Cautions.

##### Arguments

<ul>
  <li>`join_table_name` - Name of the join table to be created, in \[schema\_name.]table\_name format, using standard name resolution rules and meeting table naming criteria.</li>
  <li>`table_names` - The list of table names composing the join, each in \[schema\_name.]table\_name format, using standard name resolution rules. Corresponds to a SQL statement FROM clause.</li>
  <li>`column_names` - List of member table columns or column expressions to be included in the join. Columns can be prefixed with ‘table\_id.column\_name’, where ‘table\_id’ is the table name or alias. Columns can be aliased via the syntax ‘column\_name as alias’. Wild cards ‘’ can be used to include all columns across member tables or ‘table\_id.’ for all of a single table’s columns. Columns and column expressions composing the join must be uniquely named or aliased–therefore, the ‘\*’ wild card cannot be used if column names aren’t unique across all tables.</li>
  <li>`expressions` - An optional list of expressions to combine and filter the joined tables. Corresponds to a SQL statement WHERE clause. For details see: expressions.</li>
</ul>

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/generated/create_join_table.rs#L85-L107)
pub async fn [create\_join\_table\_with\_opts](https://docs.kinetica.com/content/api/rust/gpudb/struct.Kinetica/create-join-table.md#method.create_join_table_with_opts)( \&self, join\_table\_name: [String](https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html), table\_names: [Vec](https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html)\<[String](https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html)>, column\_names: [Vec](https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html)\<[String](https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html)>, expressions: [Vec](https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html)\<[String](https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html)>, options: [CreateJoinTableRequestOptions](https://docs.kinetica.com/content/api/rust/generated/api/struct.CreateJoinTableRequestOptions.md), ) -> [Result](https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html)\<[CreateJoinTableResponse](https://docs.kinetica.com/content/api/rust/generated/api/struct.CreateJoinTableResponse.md), [KineticaError](https://docs.kinetica.com/content/api/rust/errors/enum.KineticaError.md)>

Create a table that is the result of a SQL JOINCreates a table that is the result of a SQL JOIN.For join details and examples see: Joins. For limitations, see Join Limitations and Cautions.

##### Arguments

<ul>
  <li>`join_table_name` - Name of the join table to be created, in \[schema\_name.]table\_name format, using standard name resolution rules and meeting table naming criteria.</li>
  <li>`table_names` - The list of table names composing the join, each in \[schema\_name.]table\_name format, using standard name resolution rules. Corresponds to a SQL statement FROM clause.</li>
  <li>`column_names` - List of member table columns or column expressions to be included in the join. Columns can be prefixed with ‘table\_id.column\_name’, where ‘table\_id’ is the table name or alias. Columns can be aliased via the syntax ‘column\_name as alias’. Wild cards ‘’ can be used to include all columns across member tables or ‘table\_id.’ for all of a single table’s columns. Columns and column expressions composing the join must be uniquely named or aliased–therefore, the ‘\*’ wild card cannot be used if column names aren’t unique across all tables.</li>
  <li>`expressions` - An optional list of expressions to combine and filter the joined tables. Corresponds to a SQL statement WHERE clause. For details see: expressions.</li>
  <li>`options` - The optional parameters; any left unset take the server’s defaults.</li>
</ul>

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/generated/create_join_table.rs#L110-L121)
pub async fn [create\_join\_table\_raw](https://docs.kinetica.com/content/api/rust/gpudb/struct.Kinetica/create-join-table.md#method.create_join_table_raw)( \&self, request: &[CreateJoinTableRequest](https://docs.kinetica.com/content/api/rust/generated/api/struct.CreateJoinTableRequest.md), ) -> [Result](https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html)\<[CreateJoinTableResponse](https://docs.kinetica.com/content/api/rust/generated/api/struct.CreateJoinTableResponse.md), [KineticaError](https://docs.kinetica.com/content/api/rust/errors/enum.KineticaError.md)>

Sends a pre-built [`CreateJoinTableRequest`](https://docs.kinetica.com/content/api/rust/generated/api/struct.CreateJoinTableRequest) to the `/create/jointable` endpoint.

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/generated/create_join_table.rs#L125-L137)
pub async fn [create\_join\_table\_from\_url](https://docs.kinetica.com/content/api/rust/gpudb/struct.Kinetica/create-join-table.md#method.create_join_table_from_url)( \&self, url: &[str](https://doc.rust-lang.org/1.98.1/std/primitive.str.html), request: &[CreateJoinTableRequest](https://docs.kinetica.com/content/api/rust/generated/api/struct.CreateJoinTableRequest.md), ) -> [Result](https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html)\<[CreateJoinTableResponse](https://docs.kinetica.com/content/api/rust/generated/api/struct.CreateJoinTableResponse.md), [KineticaError](https://docs.kinetica.com/content/api/rust/errors/enum.KineticaError.md)>

Sends a pre-built [`CreateJoinTableRequest`](https://docs.kinetica.com/content/api/rust/generated/api/struct.CreateJoinTableRequest) to a specific worker URL, bypassing HA head-node selection. Used for multi-head access.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.