<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML - förformaterad Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
span.HTML-frformateradChar
        {mso-style-name:"HTML - förformaterad Char";
        mso-style-priority:99;
        mso-style-link:"HTML - förformaterad";
        font-family:Consolas;
        mso-fareast-language:SV;}
span.E-postmall22
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="SV" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">Thank you Nicolas!<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">Från:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> postgis-users <postgis-users-bounces@lists.osgeo.org>
<b>För </b>Nicolas Ribot<br>
<b>Skickat:</b> den 1 december 2021 15:10<br>
<b>Till:</b> PostGIS Users Discussion <postgis-users@lists.osgeo.org><br>
<b>Ämne:</b> Re: [postgis-users] polygons inside polygon<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p><strong><span style="background:yellow">Klicka bara på länkar och öppna bilagor om du litar på avsändaren och vet att innehållet är säkert.</span></strong><o:p></o:p></p>
<div>
<div>
<p class="MsoNormal">Hi Paul,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">I often use a CTE to update values for a table:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<pre style="background:#2B2B2B"><span style="font-family:Consolas;color:#CC7832">with </span><span style="font-family:Consolas;color:#A9B7C6">tmp </span><span style="font-family:Consolas;color:#CC7832">as </span><span style="font-family:Consolas;color:#A9B7C6">(<br>    </span><span style="font-family:Consolas;color:#CC7832">select distinct </span><span style="font-family:Consolas;color:#A9B7C6">p1.</span><span style="font-family:Consolas;color:#FFC66D">id</span><span style="font-family:Consolas;color:#CC7832">, </span><span style="font-family:Consolas;color:#A9B7C6">p2.</span><span style="font-family:Consolas;color:#FFC66D">id </span><span style="font-family:Consolas;color:#CC7832">is null as </span><span style="font-family:Consolas;color:#A9B7C6">outer_pg<br>    </span><span style="font-family:Consolas;color:#CC7832">from </span><span style="font-family:Consolas;color:#A9B7C6">org p1<br>     </span><span style="font-family:Consolas;color:#CC7832">left join </span><span style="font-family:Consolas;color:#A9B7C6">org p2 </span><span style="font-family:Consolas;color:#CC7832">on </span><span style="font-family:Consolas;color:#A9B7C6">p1.</span><span style="font-family:Consolas;color:#FFC66D">id </span><span style="font-family:Consolas;color:#A9B7C6"><> p2.</span><span style="font-family:Consolas;color:#FFC66D">id </span><span style="font-family:Consolas;color:#CC7832">and </span><i><span style="font-family:Consolas;color:#FFC66D">st_within</span></i><span style="font-family:Consolas;color:#A9B7C6">(p1.</span><span style="font-family:Consolas;color:#FFC66D">geom</span><span style="font-family:Consolas;color:#CC7832">, </span><span style="font-family:Consolas;color:#A9B7C6">p2.</span><span style="font-family:Consolas;color:#FFC66D">geom</span><span style="font-family:Consolas;color:#A9B7C6">)<br>) </span><span style="font-family:Consolas;color:#CC7832">update </span><span style="font-family:Consolas;color:#A9B7C6">org o </span><span style="font-family:Consolas;color:#CC7832">set </span><span style="font-family:Consolas;color:#FFC66D">outer_pg </span><span style="font-family:Consolas;color:#A9B7C6">= t.outer_pg<br></span><span style="font-family:Consolas;color:#CC7832">from </span><span style="font-family:Consolas;color:#A9B7C6">tmp t <br></span><span style="font-family:Consolas;color:#CC7832">where </span><span style="font-family:Consolas;color:#A9B7C6">o.</span><span style="font-family:Consolas;color:#FFC66D">id </span><span style="font-family:Consolas;color:#A9B7C6">= <a href="https://url11b.mailanyone.net/v1/?m=1msQJg-00087u-4f&i=57e1b682&c=0vE-U6c7dVKKWzkxjBIu13bHEpmR0MofmuukNTUFPwNMaCBDTRP5x06Wx5RAvWnZpHvXjToQ4OnR03iFbXuDoefHsyrPHa97giBXedq1uCHENfMjXEDKraLncqS-9We5fm7yROExsbMfL3_tbiHo1inXZ4hC0E9fhLVi1GgLOEKOpmewpogKm-gXPWwuZKOeYEGHTL1PtICR3x1rrQ2Kcd_JPVbfz0VD07WdxYCMnmUBZt3RHpZpArW6Bq8hK6NE">t.id</a></span><span style="font-family:Consolas;color:#CC7832">;</span><span style="font-family:Consolas;color:#A9B7C6"><o:p></o:p></span></pre>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Nicolas<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal">On Wed, 1 Dec 2021 at 11:10, <<a href="mailto:paul.malm@lfv.se">paul.malm@lfv.se</a>> wrote:<o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">Thanks Nicolas,</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">I’ve added a boolean column (outer_pg) in my original layer (org).</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">Then I tried to populate that column, but it I don’t have the skills…
</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">I tried to use your selection:</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">SELECT DISTINCT p1.fid, p2.fid IS null AS "outer_pg"</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">FROM org p1</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">     LEFT JOIN org p2 ON p1.fid <> p2.fid AND st_within(p1.the_geom, p2.the_geom)</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">order by p1.fid;</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">My try to populate outer_pg:</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">UPDATE org
</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">SET "outer_pg" =  (SELECT outer_p FROM (</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">SELECT DISTINCT p1.fid, p2.fid IS null AS outer_p</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">from org p1</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">     LEFT JOIN org p2 ON p1.fid <> p2.fid AND st_within(p1.the_geom, p2.the_geom) WHERE
 p1.fid = org.fid) AS tmp)</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">But that is not correct, do you have any suggestions?</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">Kind regards,</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">Paul</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">                            
</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US"> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">Från:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> postgis-users <<a href="mailto:postgis-users-bounces@lists.osgeo.org" target="_blank">postgis-users-bounces@lists.osgeo.org</a>>
<b>För </b>Nicolas Ribot<br>
<b>Skickat:</b> den 30 november 2021 19:17<br>
<b>Till:</b> PostGIS Users Discussion <<a href="mailto:postgis-users@lists.osgeo.org" target="_blank">postgis-users@lists.osgeo.org</a>><br>
<b>Ämne:</b> Re: [postgis-users] polygons inside polygon</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p><strong><span style="background:yellow">Klicka bara på länkar och öppna bilagor om du litar på avsändaren och vet att innehållet är säkert.</span></strong><o:p></o:p></p>
<div>
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Hi,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">What about a simple left join on the table searching for polygons contained inside other polygon ?<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Polygons that are contained inside other polygons will have false for the outer_pg column and true if they are not contained (ie are outer polygons).<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">You can then create the tables you want based on the outer_pg values<o:p></o:p></p>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<div>
<div>
<pre style="margin-bottom:12.0pt;background:#2B2B2B;background-attachment:scroll;background-position-x:0%;background-position-y:0%"><span style="font-family:Consolas;color:#CC7832">select distinct p1.</span><span style="font-family:Consolas;color:#9876AA">id</span><span style="font-family:Consolas;color:#CC7832">, p2.</span><span style="font-family:Consolas;color:#9876AA">id </span><span style="font-family:Consolas;color:#CC7832">is null as outer_pg<br>from polygon p1<br>     left join polygon p2 on p1.</span><span style="font-family:Consolas;color:#9876AA">id </span><span style="font-family:Consolas;color:#CC7832"><> p2.</span><span style="font-family:Consolas;color:#9876AA">id </span><span style="font-family:Consolas;color:#CC7832">and </span><i><span style="font-family:Consolas;color:#FFC66D">st_within</span></i><span style="font-family:Consolas;color:#CC7832">(p1.</span><span style="font-family:Consolas;color:#9876AA">geom</span><span style="font-family:Consolas;color:#CC7832">, p2.</span><span style="font-family:Consolas;color:#9876AA">geom</span><span style="font-family:Consolas;color:#CC7832">)<br>order by p1.</span><span style="font-family:Consolas;color:#9876AA">id</span><span style="font-family:Consolas;color:#CC7832">;<br><br>id       outer_pg<br>1        true<br>2        true<br>3        true<br>4        true<br>5        false<br>6        false<br>7        false<br>8        true<br>9        true<br>10       true<br>11       false</span><o:p></o:p></pre>
</div>
</div>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Nicolas<o:p></o:p></p>
</div>
</div>
</div>
</div>
<p class="MsoNormal">_______________________________________________<br>
postgis-users mailing list<br>
<a href="mailto:postgis-users@lists.osgeo.org" target="_blank">postgis-users@lists.osgeo.org</a><br>
<a href="https://url11b.mailanyone.net/v1/?m=1msQJg-00087u-4f&i=57e1b682&c=tpXseUCZsn9euIxSThxnno8b-S3NdyYdqzeIil9434tPYV6CUA4KaW4qap73VoCUVpspx-otwzBPuWqA-_XHpf7TFfr8dW0Q92SyNm7Li2rinIG3zcT_r6JEdBCpSEtM6_B5-z1KoYi2vFp3ReeiQ-qkQJerM3axgrwl2WJ7Sj93Y8suP0fF1wZDu44zmluTA9_FQR23uVqZ9aQRpPvyRFbu1ZbYcQPR2WJsdUgZHxbE7APf7EZIugQuuG7Eu_Ehu-7Fl05DmZPuwgQ_Ywpgv9QMXHEnD31JgxBml64vkyk" target="_blank">https://lists.osgeo.org/mailman/listinfo/postgis-users</a><o:p></o:p></p>
</blockquote>
</div>
</div>
</body>
</html>