> ## 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.

# createJoinTable

<div className="kinetica-javadoc">
  <ul className="member-list">
    <li>
      <div className="section detail" id="createJoinTable(com.gpudb.protocol.CreateJoinTableRequest)">
        <h3>createJoinTable</h3>
        <div className="member-signature"><span className="modifiers">public</span> <span className="return-type"><a href="/content/api/java/com/gpudb/protocol/CreateJoinTableResponse" title="class in com.gpudb.protocol">CreateJoinTableResponse</a></span> <span className="element-name">createJoinTable</span><wbr /><span className="parameters">(<a href="/content/api/java/com/gpudb/protocol/CreateJoinTableRequest" title="class in com.gpudb.protocol">CreateJoinTableRequest</a> request)</span> throws <span className="exceptions"><a href="/content/api/java/com/gpudb/GPUdbException" title="class in com.gpudb">GPUdbException</a></span></div>

        <div className="block">
          Creates a table that is the result of a SQL JOIN.
          <p> For join details and examples see: <a href="/content/concepts/joins/" target="_top">Joins</a>. For limitations, see <a href="/content/concepts/joins/#limitations-cautions" target="_top">Join Limitations and Cautions</a>.</p>
        </div>

        <div className="dl notes">
          <div className="dt">Parameters:</div>
          <div className="dd"><code>request</code> - <a href="/content/api/java/com/gpudb/protocol/CreateJoinTableRequest" title="class in com.gpudb.protocol"><code>Request</code></a> object containing the parameters for the operation.</div>
          <div className="dt">Returns:</div>
          <div className="dd"><a href="/content/api/java/com/gpudb/protocol/CreateJoinTableResponse" title="class in com.gpudb.protocol"><code>Response</code></a> object containing the results of the operation.</div>
          <div className="dt">Throws:</div>
          <div className="dd"><code><a href="/content/api/java/com/gpudb/GPUdbException" title="class in com.gpudb">GPUdbException</a></code> - if an error occurs during the operation.</div>
        </div>
      </div>
    </li>

    <li>
      <div className="section detail" id="createJoinTable(java.lang.String,java.util.List,java.util.List,java.util.List,java.util.Map)">
        <h3>createJoinTable</h3>
        <div className="member-signature"><span className="modifiers">public</span> <span className="return-type"><a href="/content/api/java/com/gpudb/protocol/CreateJoinTableResponse" title="class in com.gpudb.protocol">CreateJoinTableResponse</a></span> <span className="element-name">createJoinTable</span><wbr /><span className="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" className="external-link">String</a> joinTableName, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/List.html" title="class or interface in java.util" className="external-link">List</a>\<<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" className="external-link">String</a>> tableNames, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/List.html" title="class or interface in java.util" className="external-link">List</a>\<<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" className="external-link">String</a>> columnNames, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/List.html" title="class or interface in java.util" className="external-link">List</a>\<<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" className="external-link">String</a>> expressions, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Map.html" title="class or interface in java.util" className="external-link">Map</a>\<<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" className="external-link">String</a>,<wbr /><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" className="external-link">String</a>> options)</span> throws <span className="exceptions"><a href="/content/api/java/com/gpudb/GPUdbException" title="class in com.gpudb">GPUdbException</a></span></div>

        <div className="block">
          Creates a table that is the result of a SQL JOIN.
          <p> For join details and examples see: <a href="/content/concepts/joins/" target="_top">Joins</a>. For limitations, see <a href="/content/concepts/joins/#limitations-cautions" target="_top">Join Limitations and Cautions</a>.</p>
        </div>

        <div className="dl notes">
          <div className="dt">Parameters:</div>
          <div className="dd"><code>joinTableName</code> - Name of the join table to be created, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a> and meeting <a href="/content/concepts/tables/#table-naming-criteria" target="_top">table naming criteria</a>.</div>
          <div className="dd"><code>tableNames</code> - The list of table names composing the join, each in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>. Corresponds to a SQL statement FROM clause.</div>
          <div className="dd"><code>columnNames</code> - 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.</div>
          <div className="dd"><code>expressions</code> - An optional list of expressions to combine and filter the joined tables. Corresponds to a SQL statement WHERE clause. For details see: <a href="/content/concepts/expressions/" target="_top">expressions</a>. The default value is an empty <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/List.html" title="class or interface in java.util" className="external-link"><code>List</code></a>.</div>

          <div className="dd">
            <code>options</code> - Optional parameters.

            <ul>
              <li>
                <a href="/content/api/java/com/gpudb/protocol/CreateJoinTableRequest.Options#CREATE_TEMP_TABLE"><code>CREATE\_TEMP\_TABLE</code></a>: If <a href="/content/api/java/com/gpudb/protocol/CreateJoinTableRequest.Options#TRUE"><code>TRUE</code></a>, a unique temporary table name will be generated in the sys\_temp schema and used in place of <code>joinTableName</code>. This is always allowed even if the caller does not have permission to create tables. The generated name is returned in <a href="/content/api/java/com/gpudb/protocol/CreateJoinTableResponse.Info#QUALIFIED_JOIN_TABLE_NAME"><code>QUALIFIED\_JOIN\_TABLE\_NAME</code></a>. Supported values:

                <ul>
                  <li><a href="/content/api/java/com/gpudb/protocol/CreateJoinTableRequest.Options#TRUE"><code>TRUE</code></a> </li>
                  <li><a href="/content/api/java/com/gpudb/protocol/CreateJoinTableRequest.Options#FALSE"><code>FALSE</code></a> </li>
                </ul>

                The default value is <a href="/content/api/java/com/gpudb/protocol/CreateJoinTableRequest.Options#FALSE"><code>FALSE</code></a>.
              </li>

              <li><a href="/content/api/java/com/gpudb/protocol/CreateJoinTableRequest.Options#COLLECTION_NAME"><code>COLLECTION\_NAME</code></a>: \[DEPRECATED--please specify the containing schema for the join as part of <code>joinTableName</code> and use <a href="#createSchema(java.lang.String,java.util.Map)"><code>createSchema</code></a> to create the schema if non-existent] Name of a schema for the join. If the schema is non-existent, it will be automatically created. The default value is ''. </li>
              <li><a href="/content/api/java/com/gpudb/protocol/CreateJoinTableRequest.Options#MAX_QUERY_DIMENSIONS"><code>MAX\_QUERY\_DIMENSIONS</code></a>: No longer used. </li>
              <li><a href="/content/api/java/com/gpudb/protocol/CreateJoinTableRequest.Options#STRATEGY_DEFINITION"><code>STRATEGY\_DEFINITION</code></a>: The <a href="/content/rm/concepts/#tier-strategies" target="_top">tier strategy</a> for the table and its columns. </li>
              <li><a href="/content/api/java/com/gpudb/protocol/CreateJoinTableRequest.Options#TTL"><code>TTL</code></a>: Sets the <a href="/content/concepts/ttl/" target="_top">TTL</a> of the join table specified in <code>joinTableName</code>. </li>
              <li><a href="/content/api/java/com/gpudb/protocol/CreateJoinTableRequest.Options#VIEW_ID"><code>VIEW\_ID</code></a>: View this projection is part of. The default value is ''. </li>
              <li><a href="/content/api/java/com/gpudb/protocol/CreateJoinTableRequest.Options#NO_COUNT"><code>NO\_COUNT</code></a>: Return a count of 0 for the join table for logging and for <a href="#showTable(java.lang.String,java.util.Map)"><code>showTable</code></a>; optimization needed for large overlapped equi-join stencils. The default value is 'false'. </li>
              <li><a href="/content/api/java/com/gpudb/protocol/CreateJoinTableRequest.Options#CHUNK_SIZE"><code>CHUNK\_SIZE</code></a>: Maximum number of records per joined-chunk for this table. Defaults to the gpudb.conf file chunk size. </li>
              <li><a href="/content/api/java/com/gpudb/protocol/CreateJoinTableRequest.Options#ENABLE_VIRTUAL_CHUNKING"><code>ENABLE\_VIRTUAL\_CHUNKING</code></a>: Collect chunks with accumulated size less than chunk\_size into a single chunk. The default value is 'false'. </li>
              <li><a href="/content/api/java/com/gpudb/protocol/CreateJoinTableRequest.Options#MAX_VIRTUAL_CHUNK_SIZE"><code>MAX\_VIRTUAL\_CHUNK\_SIZE</code></a>: Maximum number of records per virtual-chunk. When set, enables virtual chunking. Defaults to chunk\_size if virtual chunking otherwise enabled. </li>
              <li><a href="/content/api/java/com/gpudb/protocol/CreateJoinTableRequest.Options#MIN_VIRTUAL_CHUNK_SIZE"><code>MIN\_VIRTUAL\_CHUNK\_SIZE</code></a>: Minimum number of records per virtual-chunk. When set, enables virtual chunking. Defaults to chunk\_size if virtual chunking otherwise enabled. </li>
              <li><a href="/content/api/java/com/gpudb/protocol/CreateJoinTableRequest.Options#ENABLE_SPARSE_VIRTUAL_CHUNKING"><code>ENABLE\_SPARSE\_VIRTUAL\_CHUNKING</code></a>: Materialize virtual chunks with only non-deleted values. The default value is 'false'. </li>
              <li><a href="/content/api/java/com/gpudb/protocol/CreateJoinTableRequest.Options#ENABLE_EQUI_JOIN_LAZY_RESULT_STORE"><code>ENABLE\_EQUI\_JOIN\_LAZY\_RESULT\_STORE</code></a>: Allow using the lazy result store to cache computation of one side of a multichunk equi-join. Reduces computation but also reduces parallelism to the number of chunks on the other side of the equi-join. </li>
              <li><a href="/content/api/java/com/gpudb/protocol/CreateJoinTableRequest.Options#ENABLE_PREDICATE_EQUI_JOIN_LAZY_RESULT_STORE"><code>ENABLE\_PREDICATE\_EQUI\_JOIN\_LAZY\_RESULT\_STORE</code></a>: Allow using the lazy result store to cache computation of one side of a multichunk predicate-equi-join. Reduces computation but also reduces parallelism to the number of chunks on the other side of the equi-join. </li>
              <li><a href="/content/api/java/com/gpudb/protocol/CreateJoinTableRequest.Options#ENABLE_PK_EQUI_JOIN"><code>ENABLE\_PK\_EQUI\_JOIN</code></a>: Use equi-join to do primary key joins rather than using primary key index. </li>
            </ul>

            The default value is an empty <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Map.html" title="class or interface in java.util" className="external-link"><code>Map</code></a>.
          </div>

          <div className="dt">Returns:</div>
          <div className="dd"><a href="/content/api/java/com/gpudb/protocol/CreateJoinTableResponse" title="class in com.gpudb.protocol"><code>Response</code></a> object containing the results of the operation.</div>
          <div className="dt">Throws:</div>
          <div className="dd"><code><a href="/content/api/java/com/gpudb/GPUdbException" title="class in com.gpudb">GPUdbException</a></code> - if an error occurs during the operation.</div>
        </div>
      </div>
    </li>
  </ul>
</div>
