# C1.DataEngine.Workspace.join

## Content

<div class="doc-site-dotnet-api-container">



<h1 id="C1_DataEngine_Workspace_join_" data-uid="C1.DataEngine.Workspace.join*">join Method
</h1>
<div class="markdown level0 summary"></div>
<div class="markdown level0 conceptual"></div>



<a id="C1_DataEngine_Workspace_join_" data-uid="C1.DataEngine.Workspace.join*"></a>
<h4 id="C1_DataEngine_Workspace_join_System_String_System_Dynamic_ExpandoObject_System_Object_" data-uid="C1.DataEngine.Workspace.join(System.String,System.Dynamic.ExpandoObject,System.Object)">join(string, ExpandoObject, object)</h4>
<div class="markdown level1 summary"><p>Creates a join query.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="declaration">Declaration</h5>
<div class="codewrapper">
  <pre><code class="lang-csharp hljs">public ExpandoObject join(string name, ExpandoObject mainTable, object settings)</code></pre>
</div>
<div class="codewrapper">
  <pre><code class="lang-vbnet hljs">Public Function join(name As String, mainTable As ExpandoObject, settings As Object) As ExpandoObject</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-condensed">
  <thead>
    <tr>
      <th>Type</th>
      <th>Name</th>
      <th>Description</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></td>
      <td><span class="parametername">name</span></td>
      <td><p>Name of the query. If the name is specified, query result is stored on disk.</p>
</td>
    </tr>
    <tr>
      <td><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.dynamic.expandoobject">ExpandoObject</a></td>
      <td><span class="parametername">mainTable</span></td>
      <td><p>Main table to which linked tables are joined.</p>
</td>
    </tr>
    <tr>
      <td><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></td>
      <td><span class="parametername">settings</span></td>
      <td><p>Columns of the result, and links joining linked tables to the main table.</p>
</td>
    </tr>
  </tbody>
</table>
<h5 class="returns">Returns</h5>
<table class="table table-bordered table-condensed">
  <thead>
    <tr>
      <th>Type</th>
      <th>Description</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.dynamic.expandoobject">ExpandoObject</a></td>
      <td><p>Dynamic object representing the query.</p>
</td>
    </tr>
  </tbody>
</table>
<h5 id="C1_DataEngine_Workspace_join_System_String_System_Dynamic_ExpandoObject_System_Object__remarks">Remarks</h5>
<div class="markdown level1 remarks"><p>The dynamic object can be used in queries over the result of this query if such are needed, same way as in <a class="xref" href="C1.DataEngine.Workspace.table.html#C1_DataEngine_Workspace_table_System_String_">table(string)</a>
Also, it has a Query property that returns the <a class="xref" href="C1.DataEngine.Query.html">Query</a> object representing this query.
It is used for executing the query:</p>
<pre><code class="lang-csharp">dynamic query1 = workspace.join(...);
query1.Query.Execute();</code></pre>
</div>


<a id="C1_DataEngine_Workspace_join_" data-uid="C1.DataEngine.Workspace.join*"></a>
<h4 id="C1_DataEngine_Workspace_join_System_Dynamic_ExpandoObject_System_Object_" data-uid="C1.DataEngine.Workspace.join(System.Dynamic.ExpandoObject,System.Object)">join(ExpandoObject, object)</h4>
<div class="markdown level1 summary"><p>Creates a join query.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="declaration">Declaration</h5>
<div class="codewrapper">
  <pre><code class="lang-csharp hljs">public ExpandoObject join(ExpandoObject mainTable, object settings)</code></pre>
</div>
<div class="codewrapper">
  <pre><code class="lang-vbnet hljs">Public Function join(mainTable As ExpandoObject, settings As Object) As ExpandoObject</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-condensed">
  <thead>
    <tr>
      <th>Type</th>
      <th>Name</th>
      <th>Description</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.dynamic.expandoobject">ExpandoObject</a></td>
      <td><span class="parametername">mainTable</span></td>
      <td><p>Main table to which linked tables are joined.</p>
</td>
    </tr>
    <tr>
      <td><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></td>
      <td><span class="parametername">settings</span></td>
      <td><p>Columns of the result, and links joining linked tables to the main table.</p>
</td>
    </tr>
  </tbody>
</table>
<h5 class="returns">Returns</h5>
<table class="table table-bordered table-condensed">
  <thead>
    <tr>
      <th>Type</th>
      <th>Description</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.dynamic.expandoobject">ExpandoObject</a></td>
      <td><p>Dynamic object representing the query.</p>
</td>
    </tr>
  </tbody>
</table>
<h5 id="C1_DataEngine_Workspace_join_System_Dynamic_ExpandoObject_System_Object__remarks">Remarks</h5>
<div class="markdown level1 remarks"><p>The dynamic object can be used in queries over the result of this query if such are needed, same way as in <a class="xref" href="C1.DataEngine.Workspace.table.html#C1_DataEngine_Workspace_table_System_String_">table(string)</a>
Also, it has a Query property that returns the <a class="xref" href="C1.DataEngine.Query.html">Query</a> object representing this query.
It is used for executing the query:</p>
<pre><code class="lang-csharp">dynamic query1 = workspace.join(...);
query1.Query.Execute();</code></pre>
</div>
</div>
