forked from docs/doc-exports
Reviewed-by: Pruthi, Vineet <vineet.pruthi@t-systems.com> Co-authored-by: luhuayi <luhuayi@huawei.com> Co-committed-by: luhuayi <luhuayi@huawei.com>
147 lines
32 KiB
HTML
147 lines
32 KiB
HTML
<a name="EN-US_TOPIC_0000002040291858"></a><a name="EN-US_TOPIC_0000002040291858"></a>
|
|
|
|
<h1 class="topictitle1">GaussDB(DWS) Subquery Expressions</h1>
|
|
<div id="body8662426"><p id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_p8060118">A subquery allows you to nest one query within another, enabling more complex data query and analysis.</p>
|
|
<div class="section" id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_section965124316213"><h4 class="sectiontitle">Subquery Expressions</h4><ul id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_ul1470115117217"><li id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_li1670175119219">EXISTS/NOT EXISTS<p id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_p31027504222"><a name="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_li1670175119219"></a><a name="en-us_topic_0000001787588592_li1670175119219"></a>Before the main query runs, the subquery runs and its result determines if the main query continues. EXISTS returns <strong id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_b667312160425">true</strong> if the subquery returns at least one row. <strong id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_b687119213424">NOT EXISTS</strong> returns <strong id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_b3155566425">true</strong> if the subquery returns no rows.</p>
|
|
<p id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_p9214115918318"><span><img id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_image827816320374" src="figure/en-us_image_0000001787832492.png"></span></p>
|
|
<p id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_p9181515112518">Syntax:</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_screen2401439162512"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">WHERE</span><span class="w"> </span><span class="k">column_name</span><span class="w"> </span><span class="k">EXISTS</span><span class="o">/</span><span class="k">NOT</span><span class="w"> </span><span class="k">EXISTS</span><span class="w"> </span><span class="p">(</span><span class="n">subquery</span><span class="p">)</span>
|
|
</pre></div></td></tr></table></div>
|
|
</div>
|
|
</li><li id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_li1371019182215">IN/NOT IN<p id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_p1220871153413"><a name="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_li1371019182215"></a><a name="en-us_topic_0000001787588592_li1371019182215"></a>IN and NOT IN are operators that check if a value is in a set of values. <strong id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_b2308151113506">IN</strong> returns <strong id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_b1064216148506">true</strong> when the outer query row matches a subquery row. <strong id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_b121161223145019">NOT IN</strong> returns <strong id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_b1868713295502">true</strong> when the outer query row does not match any subquery row.</p>
|
|
<p id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_p691049173612"><span><img id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_image161441921153714" src="figure/en-us_image_0000001834631725.png"></span></p>
|
|
<p id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_p1815551815258">Syntax:</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_screen1964023132512"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">WHERE</span><span class="w"> </span><span class="k">column_name</span><span class="w"> </span><span class="k">IN</span><span class="o">/</span><span class="k">NOT</span><span class="w"> </span><span class="k">IN</span><span class="w"> </span><span class="p">(</span><span class="n">subquery</span><span class="p">)</span>
|
|
</pre></div></td></tr></table></div>
|
|
</div>
|
|
</li><li id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_li64322024172214">ANY/SOME<p id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_p19703174511320"><a name="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_li64322024172214"></a><a name="en-us_topic_0000001787588592_li64322024172214"></a><strong id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_b1394115423513">ANY</strong> indicates that any value in a subquery can match a value in an outer query. <strong id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_b623718153523">SOME</strong> is the same as <strong id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_b183671633115310">ANY</strong>, but the syntax is different.</p>
|
|
<p id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_p97032456325">The subquery can return only one column. The expression on the left uses operators (=, <>, <, <=, >, >=) to compare the value with each subquery row. The result must be a Boolean value. The result of <strong id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_b143719709581753">ANY</strong> is <strong id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_b2073715995811">true</strong> if any true result is obtained. The result is <strong id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_b1577190584">false</strong> if no true result is found (including the case where the subquery returns no rows).</p>
|
|
<p id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_p15296123843317"><span><img id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_image35561658143616" src="figure/en-us_image_0000001787831724.png"></span></p>
|
|
<p id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_p487462019250">Syntax:</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_screen9903024182515"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">WHERE</span><span class="w"> </span><span class="k">column_name</span><span class="w"> </span><span class="k">operator</span><span class="w"> </span><span class="k">ANY</span><span class="o">/</span><span class="k">SOME</span><span class="w"> </span><span class="p">(</span><span class="n">subquery</span><span class="p">)</span>
|
|
</pre></div></td></tr></table></div>
|
|
</div>
|
|
</li><li id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_li174185368223">ALL<p id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_p1899462673413"><a name="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_li174185368223"></a><a name="en-us_topic_0000001787588592_li174185368223"></a>The subquery on the right must return only one field. The expression on the left uses operators (=, <>, <, <=, >, >=) to compare the value with each subquery row. The result must be a Boolean value. The result of <strong id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_b73788677881753">ALL</strong> is <strong id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_b682295865819">true</strong> if all rows yield true (including the case where the subquery returns no rows). The result is <strong id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_b20417189205914">false</strong> if any false result is found.</p>
|
|
<p id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_p5668013163616"><span><img id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_image736118743718" src="figure/en-us_image_0000001834631305.png"></span></p>
|
|
<p id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_p14264143614248">Syntax:</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_screen2147153052418"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">WHERE</span><span class="w"> </span><span class="k">column_name</span><span class="w"> </span><span class="k">operator</span><span class="w"> </span><span class="k">ALL</span><span class="w"> </span><span class="p">(</span><span class="n">subquery</span><span class="p">)</span>
|
|
</pre></div></td></tr></table></div>
|
|
</div>
|
|
|
|
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_table132474484213" frame="border" border="1" rules="all"><caption><b>Table 1 </b>ALL conditions</caption><thead align="left"><tr id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_row152471242425"><th align="left" class="cellrowborder" valign="top" width="50%" id="mcps1.3.2.2.4.5.2.3.1.1"><p id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_p1124734154211">Condition</p>
|
|
</th>
|
|
<th align="left" class="cellrowborder" valign="top" width="50%" id="mcps1.3.2.2.4.5.2.3.1.2"><p id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_p1824774174214">Description</p>
|
|
</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody><tr id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_row13247174144211"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.3.2.2.4.5.2.3.1.1 "><p id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_p112489464219">column_name > ALL(...)</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.3.2.2.4.5.2.3.1.2 "><p id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_p1524894104212">The <strong id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_b12235181152013">column_name</strong> value must be greater than the maximum value of a set to be true.</p>
|
|
</td>
|
|
</tr>
|
|
<tr id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_row12248443426"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.3.2.2.4.5.2.3.1.1 "><p id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_p82489494215">column_name >= ALL(...)</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.3.2.2.4.5.2.3.1.2 "><p id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_p162501243421">The <strong id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_b126109111258">column_name</strong> value must be greater than or equal to the maximum value of a set to be true.</p>
|
|
</td>
|
|
</tr>
|
|
<tr id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_row182507454217"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.3.2.2.4.5.2.3.1.1 "><p id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_p42501247428">column_name < ALL(...)</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.3.2.2.4.5.2.3.1.2 "><p id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_p3250154144217">The <strong id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_b975123510255">column_name</strong> value must be smaller than the minimum value of a set to be true.</p>
|
|
</td>
|
|
</tr>
|
|
<tr id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_row72508494211"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.3.2.2.4.5.2.3.1.1 "><p id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_p182502414425">column_name <= ALL(...)</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.3.2.2.4.5.2.3.1.2 "><p id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_p19250124184215">The <strong id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_b561658132517">column_name</strong> value must be smaller than or equal to the minimum value of a set to be true.</p>
|
|
</td>
|
|
</tr>
|
|
<tr id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_row1325013434219"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.3.2.2.4.5.2.3.1.1 "><p id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_p12511946424">column_name <> ALL(...)</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.3.2.2.4.5.2.3.1.2 "><p id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_p82512413429">The <strong id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_b623485814268">column_name</strong> value cannot be equal to any value in a set to be true.</p>
|
|
</td>
|
|
</tr>
|
|
<tr id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_row02511841429"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.3.2.2.4.5.2.3.1.1 "><p id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_p142511843426">column_name = ALL(...)</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.3.2.2.4.5.2.3.1.2 "><p id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_p2025194124211">The <strong id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_b1066112716279">column_name</strong> value must be equal to any value in a set to be true.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</li></ul>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_section14811209438"><h4 class="sectiontitle">Example</h4><p id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_p184701530124311">Create the <strong id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_b6613103862719">course</strong> table and insert data into the table.</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_screen378917528450"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span>
|
|
<span class="normal">3</span>
|
|
<span class="normal">4</span>
|
|
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">course</span><span class="p">(</span><span class="n">cid</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span><span class="w"> </span><span class="k">COMMENT</span><span class="w"> </span><span class="s1">'No.course'</span><span class="p">,</span><span class="n">cname</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span><span class="w"> </span><span class="k">COMMENT</span><span class="w"> </span><span class="s1">'course name'</span><span class="p">,</span><span class="n">teid</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span><span class="w"> </span><span class="k">COMMENT</span><span class="w"> </span><span class="s1">'No.teacher'</span><span class="p">);</span>
|
|
|
|
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">course</span><span class="w"> </span><span class="k">VALUES</span><span class="p">(</span><span class="s1">'01'</span><span class="w"> </span><span class="p">,</span><span class="w"> </span><span class="s1">'course1'</span><span class="w"> </span><span class="p">,</span><span class="w"> </span><span class="s1">'02'</span><span class="p">);</span><span class="w"> </span>
|
|
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">course</span><span class="w"> </span><span class="k">VALUES</span><span class="p">(</span><span class="s1">'02'</span><span class="w"> </span><span class="p">,</span><span class="w"> </span><span class="s1">'course2'</span><span class="w"> </span><span class="p">,</span><span class="w"> </span><span class="s1">'01'</span><span class="p">);</span><span class="w"> </span>
|
|
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">course</span><span class="w"> </span><span class="k">VALUES</span><span class="p">(</span><span class="s1">'03'</span><span class="w"> </span><span class="p">,</span><span class="w"> </span><span class="s1">'course3'</span><span class="w"> </span><span class="p">,</span><span class="w"> </span><span class="s1">'03'</span><span class="p">);</span>
|
|
</pre></div></td></tr></table></div>
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_p148295916485">Create the <strong id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_b54991133162714">teacher</strong> table and insert data into the table.</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_screen1056082710496"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span>
|
|
<span class="normal">3</span>
|
|
<span class="normal">4</span>
|
|
<span class="normal">5</span>
|
|
<span class="normal">6</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">teacher</span><span class="p">(</span><span class="n">teid</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span><span class="w"> </span><span class="k">COMMENT</span><span class="w"> </span><span class="s1">'Teacher ID'</span><span class="p">,</span><span class="n">tname</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span><span class="w"> </span><span class="k">COMMENT</span><span class="s1">'Teacher name'</span><span class="p">);</span>
|
|
|
|
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">teacher</span><span class="w"> </span><span class="k">VALUES</span><span class="p">(</span><span class="s1">'01'</span><span class="w"> </span><span class="p">,</span><span class="w"> </span><span class="s1">'teacher1'</span><span class="p">);</span><span class="w"> </span>
|
|
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">teacher</span><span class="w"> </span><span class="k">VALUES</span><span class="p">(</span><span class="s1">'02'</span><span class="w"> </span><span class="p">,</span><span class="w"> </span><span class="s1">'teacher2'</span><span class="p">);</span>
|
|
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">teacher</span><span class="w"> </span><span class="k">VALUES</span><span class="p">(</span><span class="s1">'03'</span><span class="w"> </span><span class="p">,</span><span class="w"> </span><span class="s1">'teacher3'</span><span class="p">);</span>
|
|
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">teacher</span><span class="w"> </span><span class="k">VALUES</span><span class="p">(</span><span class="s1">'04'</span><span class="w"> </span><span class="p">,</span><span class="w"> </span><span class="s1">'teacher4'</span><span class="p">);</span>
|
|
</pre></div></td></tr></table></div>
|
|
</div>
|
|
<ul id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_ul12964161355618"><li id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_li16964181375614">EXISTS/NOT EXISTS example</li></ul>
|
|
<p id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_p38912151554">Query the teacher records in the course table.</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_screen99454217543"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">teacher</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="k">EXISTS</span><span class="w"> </span><span class="p">(</span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">course</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">course</span><span class="p">.</span><span class="n">teid</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">teacher</span><span class="p">.</span><span class="n">teid</span><span class="p">);</span>
|
|
</pre></div></td></tr></table></div>
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_p913011221218"><span><img id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_image561443118456" src="figure/en-us_image_0000001814324420.png"></span></p>
|
|
<p id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_p1233595495412">Query the teacher records that are not in the <strong id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_b75512316016">course</strong> table.</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_screen44151843558"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">teacher</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">EXISTS</span><span class="w"> </span><span class="p">(</span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">course</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">course</span><span class="p">.</span><span class="n">teid</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">teacher</span><span class="p">.</span><span class="n">teid</span><span class="p">);</span>
|
|
</pre></div></td></tr></table></div>
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_p6163182616128"><span><img id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_image794810514451" src="figure/en-us_image_0000001861124593.png"></span></p>
|
|
<ul id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_ul14210714125715"><li id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_li13210514165711">IN/NOT IN example</li></ul>
|
|
<p id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_p35295546561">Query the <strong id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_b1755217161010">course</strong> table for teacher information based on the teacher ID.</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_screen1275134516565"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">course</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">teid</span><span class="w"> </span><span class="k">IN</span><span class="w"> </span><span class="p">(</span><span class="k">SELECT</span><span class="w"> </span><span class="n">teid</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">teacher</span><span class="w"> </span><span class="p">);</span>
|
|
</pre></div></td></tr></table></div>
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_p78561052101320"><span><img id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_image166181015124611" src="figure/en-us_image_0000001814165292.png"></span></p>
|
|
<p id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_p7624124835717">Query the information about teachers who are not in the <strong id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_b16451530905">course</strong> table.</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_screen2929103715710"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">teacher</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">teid</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">IN</span><span class="w"> </span><span class="p">(</span><span class="k">SELECT</span><span class="w"> </span><span class="n">teid</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">course</span><span class="w"> </span><span class="p">);</span>
|
|
</pre></div></td></tr></table></div>
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_p5537182141411"><span><img id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_image97328341462" src="figure/en-us_image_0000001861005333.png"></span></p>
|
|
<ul id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_ul35988010590"><li id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_li95981709593">ANY/SOME example</li></ul>
|
|
<p id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_p54691849145814">Compare the main query fields on the left with the subquery fields on the right to obtain the required result set.</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_screen1742152965815"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">course</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">teid</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="k">ANY</span><span class="w"> </span><span class="p">(</span><span class="k">SELECT</span><span class="w"> </span><span class="n">teid</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">teacher</span><span class="w"> </span><span class="k">where</span><span class="w"> </span><span class="n">teid</span><span class="o"><></span><span class="s1">'04'</span><span class="p">);</span>
|
|
</pre></div></td></tr></table></div>
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_p345673395814">or</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_screen1998081616599"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">course</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">teid</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="k">some</span><span class="w"> </span><span class="p">(</span><span class="k">SELECT</span><span class="w"> </span><span class="n">teid</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">teacher</span><span class="w"> </span><span class="k">where</span><span class="w"> </span><span class="n">teid</span><span class="o"><></span><span class="s1">'04'</span><span class="p">);</span>
|
|
</pre></div></td></tr></table></div>
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_p574882142219"><span><img id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_image1167511521468" src="figure/en-us_image_0000001814165600.png"></span></p>
|
|
<ul id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_ul567417293011"><li id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_li196746298010">ALL example</li></ul>
|
|
<p id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_p712314211606">The value in the <strong id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_b55214321514">teid</strong> column must be smaller than the minimum value in the set to be true.</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_screen8640171919015"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">course</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">teid</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="k">ALL</span><span class="p">(</span><span class="k">SELECT</span><span class="w"> </span><span class="n">teid</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">teacher</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">teid</span><span class="o"><></span><span class="s1">'01'</span><span class="p">);</span>
|
|
</pre></div></td></tr></table></div>
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_p151232213234"><span><img id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_image4177912144711" src="figure/en-us_image_0000001814325508.png"></span></p>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_section861435313110"><h4 class="sectiontitle">Important Notes</h4><ul id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_ul14213458526"><li id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_li14213158727">Duplicate subquery statements are not allowed in an SQL statement.</li><li id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_li9489756312">Avoid scalar sub-queries whenever possible. A scalar subquery is a subquery whose result is one value and whose condition expression uses an equal operator.</li><li id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_li1658491836">Do not use subqueries in the SELECT target columns. Otherwise, the plan cannot be pushed down, affecting the execution performance.</li><li id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_li14852171114316">It is recommended that the nested subqueries cannot exceed two layers. Subqueries cause temporary table overhead. Therefore, complex queries must be optimized based on service logic.</li></ul>
|
|
<p id="EN-US_TOPIC_0000002040291858__en-us_topic_0000001787588592_p434015910115">A subquery can be nested in the SELECT statement to implement a more complex query. A subquery can also use the results of other queries in the WHERE clause to better filter data. However, subqueries may cause query performance problems and make code difficult to read and understand. Therefore, when using SQL subqueries in databases such as GaussDB, use them based on the site requirements.</p>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div class="familylinks">
|
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="dws_04_1001.html">GaussDB(DWS) Data Query</a></div>
|
|
</div>
|
|
</div>
|
|
|