Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1srVFy-002AZN-17 for pgsql-general@arkaria.postgresql.org; Fri, 20 Sep 2024 04:28:34 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1srVFw-00EdVL-2R for pgsql-general@arkaria.postgresql.org; Fri, 20 Sep 2024 04:28:33 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1srVFv-00EdVD-LY for pgsql-general@lists.postgresql.org; Fri, 20 Sep 2024 04:28:33 +0000 Received: from mail-ed1-x531.google.com ([2a00:1450:4864:20::531]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1srVFo-0007ms-95 for pgsql-general@lists.postgresql.org; Fri, 20 Sep 2024 04:28:32 +0000 Received: by mail-ed1-x531.google.com with SMTP id 4fb4d7f45d1cf-5c42bcf35fbso2112581a12.1 for ; Thu, 19 Sep 2024 21:28:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1726806504; x=1727411304; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=vqQ5iVdwupeCO3bwppNQUMHw8+H9lnPU2RFbfAHrbXI=; b=LcUVXu4QjuFF/YLEMKEtYZkN5m6MoJN4TcTZu8jTsoRpUHFu/0hv/T/tz0PNu7Goxy YtSIHRFmTSg7yKaTiTD2XP5/vENmel/f/o1jrBCJmD910fJd0DXJug9q4YKyaWipVx7i mnomiSYxdtX7Y45Vt+tnj74Nj2F1/lGOY6Eh3pJGV0Rk5KV5SrJUt2Nk0DcJW+ag8k9d 3PHLvUxP0BymzbeXsFZfd2qQf+SgJE7CfmRJPNbFhnz7A1Re9k/JGZyw0vIxE0Oat05L bKXznSd8j93dHlJkgUBOVRkK+lB/W7NsbYmdvB0pPB71sHXuNJDArSY3kkf3rMVn74lS +gkA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1726806504; x=1727411304; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=vqQ5iVdwupeCO3bwppNQUMHw8+H9lnPU2RFbfAHrbXI=; b=dr4RvVUe6g3aRaQMFebNJ8SZikukrfyDmU7a+GdecLClM84vvAu9UiDITNPgdw0eHz V4sUFMWTvwM/SgtL72Up8oDUCElYx2oXzayFKa0Bx51OSqMDggbBe09rHERV3IxSGH97 RvTNOStMb5Z7QaVX48TEUWTx1t8/EEiRivJbjArkkN6OfS4Y+y+5jOOhsRgmzrElLnJ/ rNOiX0C6CjE+l+3dHJLL+oeSY/0o7iIIuSOPwBamvj2EngcIWAUy/aYM30HIRUDAP2e1 d63WySUcd4Ak5Y4wJvxTj9qOCkKAz/M9lUeBaT/gj4I1kv5VXV4/kD/I8CmZZOmQFSa0 RFiA== X-Gm-Message-State: AOJu0YyQpIIhfX+vh+fR/PPhS+FYOWxkw0DSjLNXwqEueGPGaergCow7 /lHWIO13uIFslV6kLT4u8pzhXDqyfNkHDVU0+VEhP+ZZQlCfCMy6bdO5ow+LIDWqy5DonyyYMP2 xl8PzEz7ZzGIrHi00Yxe8GKkwrvk= X-Google-Smtp-Source: AGHT+IE0aIlQkIJRdAYoakHv2lvSrZgWzyV3lR619jc8yhdtdN4Dy9Dn7hh7xIBNe0k2F9fjA80UMnLXVhWssm4vlM8= X-Received: by 2002:a50:c945:0:b0:5c4:a6f:9be7 with SMTP id 4fb4d7f45d1cf-5c464a3df1dmr852885a12.8.1726806504225; Thu, 19 Sep 2024 21:28:24 -0700 (PDT) MIME-Version: 1.0 References: <2cf838b6-2e49-42a0-8d8c-98649127dd4b@aklaver.com> In-Reply-To: <2cf838b6-2e49-42a0-8d8c-98649127dd4b@aklaver.com> From: Siraj G Date: Fri, 20 Sep 2024 09:58:12 +0530 Message-ID: Subject: Re: Need assistance in converting subqueries to joins To: Adrian Klaver Cc: pgsql-general@lists.postgresql.org Content-Type: multipart/alternative; boundary="00000000000047c8b70622857852" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000047c8b70622857852 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hello Adrian! Please find below the query in the format and its execution plan: SELECT em_exists_idFROM IS_SEC_FILTWHERE (IS_SEC_FILT_GUID)NOT IN ( SELECT IS_OBJ_GUID FROM TMP_IS_SEC_FILT T0, IS_PROJ P0 WHERE T0.IS_PROJ_GUID =3D P0.IS_PROJ_GUID AND P0.IS_PROJ_ID =3D IS_SEC_FILT.IS_PROJ_ID)AND (IS_PROJ_ID) IN ( SELECT IS_PROJ_ID FROM IS_PROJ P0, TMP_IS_SEC_FILT T0, EM_MD R0 WHERE T0.IS_REPOSITORY_GUID =3D R0.REP_GUID AND T0.IS_PROJ_GUID =3D P0.IS_PROJ_GUID AND P0.IS_REPOSITORY_ID =3D R0.REP_ID); Query plan: '-> Aggregate: count(0) (cost=3D2284.32 rows=3D1988) (actual time=3D22602.583..22602.584 rows=3D1 loops=3D1)\n -> Remove duplicate (P0, IS_SEC_FILT) rows using temporary table (weedout) (cost=3D2085.53 rows=3D1988) (actual time=3D0.321..22600.652 rows=3D10298 loops=3D1)\n -> Filter: (IS_SEC_FILT.IS_SEC_FILT_GUID,(select #2) is false) (cost=3D2085.53 rows=3D1988) (actual time=3D0.315..22433.412 rows=3D514900 loops=3D1)\n -> Inner hash join (IS_SEC_FILT.IS_PROJ_ID =3D P0.IS_PROJ_ID) (cost=3D2085.53 rows=3D1988) (actual time=3D0.188..96.362 rows=3D517350 loops=3D1)\n -> Index scan on IS_SEC_FILT using IS_SEC_FILT_PK (cost=3D28.84 rows=3D19879) (actual time=3D0.019..7.386 rows=3D20086 loops=3D1)\n -> Hash\n -> Nested loop inner join (cost=3D8.05 rows=3D1) (actual time=3D0.064..0.132 rows=3D50 loops=3D1)\n -> Inner hash join (T0.IS_REPOSITORY_GUID =3D R0.REP_GUID) (cost=3D1.70 rows=3D1) (actual time=3D0.047..0.094 rows=3D50 loops=3D1)\n -> Filter: (T0.IS_PROJ_GUID is not null) (cost=3D0.38 rows=3D5) (actual time=3D0.010..0.041 rows=3D50 loops=3D1)\n -> Table scan on T0 (cost=3D0.38 rows=3D50) (actual time=3D0.010..0.037 rows=3D50 loops=3D1)\n -> Hash\n -> Filter: (R0.REP_ID is not null) (cost=3D0.45 rows=3D2) (actual time=3D0.022..0.025 rows=3D2 loops=3D1)\n -> Table scan on R0 (cost=3D0.45 rows=3D2) (actual time=3D0.021..0.023 rows=3D2 loops=3D1)\n -> Filter: (P0.IS_REPOSITORY_ID =3D R0.REP_ID) (cost=3D0.63 rows=3D1) (actual time=3D0.001..0.001 rows=3D1 loops=3D50)\n -> Single-row index lookup on P0 using IS_PROJ_PK (IS_PROJ_GUID=3DT0.IS_PROJ_GUID, IS_REPOSITORY_ID=3DR0.REP_ID) (cost=3D0.6= 3 rows=3D1) (actual time=3D0.000..0.000 rows=3D1 loops=3D50)\n -> Select #2 (subquery in condition; dependent)\n -> Limit: 1 row(s) (cost=3D5.98 rows=3D1) (actual time=3D0.043..0.043 rows=3D0 loops=3D517350)\n -> Filter: (T0.IS_OBJ_GUID) (cost=3D5.98 rows=3D1) (actual time=3D0.043..0.043 rows=3D0 loops=3D517350)\n -> Filter: (((IS_SEC_FILT.IS_SEC_FILT_GUID) =3D T0.IS_OBJ_GUID) or (T0.IS_OBJ_GUID is null)) (cost=3D5.98 rows=3D1) (actual time=3D0.042..0.042 rows=3D0 loops=3D517350)\n -> Inner hash join (T0.IS_PROJ_GUID =3D P0.IS_PROJ_GUID) (cost=3D5.98 rows=3D1) (actual time=3D0.004..0.038 rows=3D50 loops=3D517350)\n -> Table scan on T0 (cost=3D0.35 rows=3D50) (actual time=3D0.001..0.022 rows=3D50 loops=3D517350)\n -> Hash\n -> Single-row index lookup on P0 using PRIMARY (IS_PROJ_ID=3DIS_SEC_FILT.IS_PROJ_ID) (cost=3D0.72 rows=3D1) (actual time=3D0.001..0.001 rows=3D1 loops=3D517350)= \n' On Fri, Sep 20, 2024 at 9:49=E2=80=AFAM Adrian Klaver wrote: > On 9/19/24 21:07, Siraj G wrote: > > Hello Tech gents! > > > > I am sorry if I am asking the wrong question to this group, but wanted > > assistance in converting a query replacing subqueries with joins. > > > > Please find the query below (whose cost is very high): > > Add the output of the EXPLAIN ANALYZE for the query. > > > > > select em_exists_id from IS_SEC_FILT WHERE (IS_SEC_FILT_GUID) NOT IN > > (SELECT IS_OBJ_GUID FROM TMP_IS_SEC_FILT T0, IS_PROJ P0 WHERE > > T0.IS_PROJ_GUID =3D P0.IS_PROJ_GUID AND P0.IS_PROJ_ID =3D > > IS_SEC_FILT.IS_PROJ_ID) AND (IS_PROJ_ID) IN (SELECT IS_PROJ_ID FROM > > IS_PROJ P0, TMP_IS_SEC_FILT T0, EM_MD R0 WHERE T0.IS_REPOSITORY_GUID = =3D > > R0.REP_GUID AND T0.IS_PROJ_GUID =3D P0.IS_PROJ_GUID AND > > P0.IS_REPOSITORY_ID =3D R0.REP_ID); > > For future reference formatting the query here: > > https://sqlformat.darold.net/ > > helps get it into a form that is easier to follow: > > SELECT > em_exists_id > FROM > IS_SEC_FILT > WHERE (IS_SEC_FILT_GUID) > NOT IN ( > SELECT > IS_OBJ_GUID > FROM > TMP_IS_SEC_FILT T0, > IS_PROJ P0 > WHERE > T0.IS_PROJ_GUID =3D P0.IS_PROJ_GUID > AND P0.IS_PROJ_ID =3D IS_SEC_FILT.IS_PROJ_ID) > AND (IS_PROJ_ID) IN ( > SELECT > IS_PROJ_ID > FROM > IS_PROJ P0, > TMP_IS_SEC_FILT T0, > EM_MD R0 > WHERE > T0.IS_REPOSITORY_GUID =3D R0.REP_GUID > AND T0.IS_PROJ_GUID =3D P0.IS_PROJ_GUID > AND P0.IS_REPOSITORY_ID =3D R0.REP_ID); > > > > > > Regards > > Siraj > > -- > Adrian Klaver > adrian.klaver@aklaver.com > > --00000000000047c8b70622857852 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hello Adrian!

Please find below the que= ry in the format and its execution plan:

SELEC=
T
    em_exists_id
FROM
    IS_SEC_FILT
WHERE (IS_SEC_FILT_GUID)
NOT IN (
    SELECT
        IS_OBJ_GUID
    FROM
        TMP_IS_SEC_FILT T0,
        IS_PROJ P0
    WHERE
        T0.IS_PROJ_GUID =3D P0.IS_PROJ_GUID
        AND P0.IS_PROJ_ID =3D IS_SEC_FILT.IS_PROJ_ID)
AND (IS_PROJ_ID) IN (
    SELECT
        IS_PROJ_ID
    FROM
        IS_PROJ P0,
        TMP_IS_SEC_FILT T0,
        EM_MD R0
    WHERE
        T0.IS_REPOSITORY_GUID =3D R0.REP_GUID
        AND T0.IS_PROJ_GUID =3D P0.IS_PROJ_GUID
        AND P0.IS_REPOSITORY_ID =3D R0.REP_ID);

Query plan:
'-> Aggr= egate: count(0)=C2=A0 (cost=3D2284.32 rows=3D1988) (actual time=3D22602.583= ..22602.584 rows=3D1 loops=3D1)\n=C2=A0 =C2=A0=C2=A0
-> Remove duplicate (P0, IS_SEC_FILT) rows using tempor= ary table (weedout)=C2=A0 (cost=3D2085.53 rows=3D1988) (actual time=3D0.321= ..22600.652 rows=3D10298 loops=3D1)\n=C2=A0 =C2=A0 =C2=A0 =C2=A0 -> Filt= er: <in_optimizer>(IS_SEC_FILT.IS_SEC_FILT_GUID,<exists>(select= #2) is false)=C2=A0 (cost=3D2085.53 rows=3D1988) (actual time=3D0.315..224= 33.412 rows=3D514900 loops=3D1)\n=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0
-> Inner hash join (IS_SEC= _FILT.IS_PROJ_ID =3D P0.IS_PROJ_ID)=C2=A0 (cost=3D2085.53 rows=3D1988) (act= ual time=3D0.188..96.362 rows=3D517350 loops=3D1)\n=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=C2=A0
-> Hash\n=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0=C2=A0
-&= gt; Nested loop inner join=C2=A0 (cost=3D8.05 rows=3D1) (actual time=3D0.06= 4..0.132 rows=3D50 loops=3D1)\n=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=C2=A0
-> Inner hash join (T0.IS_REPOSITORY_GUID =3D R0.REP_GUID)= =C2=A0 (cost=3D1.70 rows=3D1) (actual time=3D0.047..0.094 rows=3D50 loops= =3D1)\n=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=C2=A0
-> Table scan= on T0=C2=A0 (cost=3D0.38 rows=3D50) (actual time=3D0.010..0.037 rows=3D50 = loops=3D1)\n=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=C2=A0
-> Hash\n=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=C2=A0
-> Filter: (R0.REP_ID is not null)=C2=A0 (cost= =3D0.45 rows=3D2) (actual time=3D0.022..0.025 rows=3D2 loops=3D1)\n=C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=C2=A0
-> Table scan on R0=C2=A0 (cost=3D0.45 rows=3D2) (actual= time=3D0.021..0.023 rows=3D2 loops=3D1)\n=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=C2=A0
-> Filter: (P0.IS_REPOSITORY_ID =3D R0.REP_ID)= =C2=A0 (cost=3D0.63 rows=3D1) (actual time=3D0.001..0.001 rows=3D1 loops=3D= 50)\n=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0=C2=A0
-&= gt; Single-row index lookup on P0 using IS_PROJ_PK (IS_PROJ_GUID=3DT0.IS_PR= OJ_GUID, IS_REPOSITORY_ID=3DR0.REP_ID)=C2=A0 (cost=3D0.63 rows=3D1) (actual= time=3D0.000..0.000 rows=3D1 loops=3D50)\n=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0=C2=A0
-> Select #2 (su= bquery in condition; dependent)\n=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0=C2=A0
-> Limit: 1 r= ow(s)=C2=A0 (cost=3D5.98 rows=3D1) (actual time=3D0.043..0.043 rows=3D0 loo= ps=3D517350)\n=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0=C2=A0
-> Filter: <i= s_not_null_test>(T0.IS_OBJ_GUID)=C2=A0 (cost=3D5.98 rows=3D1) (actual ti= me=3D0.043..0.043 rows=3D0 loops=3D517350)\n=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=C2=A0
-> Filter: ((<cache>(IS_SEC_FILT.IS_SEC_FI= LT_GUID) =3D T0.IS_OBJ_GUID) or (T0.IS_OBJ_GUID is null))=C2=A0 (cost=3D5.9= 8 rows=3D1) (actual time=3D0.042..0.042 rows=3D0 loops=3D517350)\n=C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0=C2=A0
-> Inner = hash join (T0.IS_PROJ_GUID =3D P0.IS_PROJ_GUID)=C2=A0 (cost=3D5.98 rows=3D1= ) (actual time=3D0.004..0.038 rows=3D50 loops=3D517350)\n=C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 -> Table scan on T0=C2=A0 (cost=3D0.35 rows=3D50) (= actual time=3D0.001..0.022 rows=3D50 loops=3D517350)\n=C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 -> Hash\n=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 -> Single-row index lookup on P0 using PRIMARY (IS_PROJ_ID=3DIS_S= EC_FILT.IS_PROJ_ID)=C2=A0 (cost=3D0.72 rows=3D1) (actual time=3D0.001..0.00= 1 rows=3D1 loops=3D517350)\n'

On Fri, Sep 20, 2024 at 9:49=E2=80=AFAM Adrian Klaver <adrian.klaver@aklaver.com> w= rote:
On 9/19/24= 21:07, Siraj G wrote:
> Hello Tech gents!
>
> I am sorry if I am asking the wrong=C2=A0question to this group, but w= anted
> assistance in converting a query replacing subqueries with joins.
>
> Please find the query below (whose cost is very high):

Add the output of the EXPLAIN ANALYZE for the query.

>
> select em_exists_id from IS_SEC_FILT WHERE (IS_SEC_FILT_GUID) NOT IN <= br> > (SELECT IS_OBJ_GUID FROM TMP_IS_SEC_FILT T0, IS_PROJ P0 WHERE
> T0.IS_PROJ_GUID =3D P0.IS_PROJ_GUID AND P0.IS_PROJ_ID =3D
> IS_SEC_FILT.IS_PROJ_ID) AND (IS_PROJ_ID) IN (SELECT IS_PROJ_ID FROM > IS_PROJ P0, TMP_IS_SEC_FILT T0, EM_MD R0 WHERE T0.IS_REPOSITORY_GUID = =3D
> R0.REP_GUID AND T0.IS_PROJ_GUID =3D P0.IS_PROJ_GUID AND
> P0.IS_REPOSITORY_ID =3D R0.REP_ID);

For future reference formatting the query here:

https://sqlformat.darold.net/

helps get it into a form that is easier to follow:

SELECT
=C2=A0 =C2=A0 =C2=A0em_exists_id
FROM
=C2=A0 =C2=A0 =C2=A0IS_SEC_FILT
WHERE (IS_SEC_FILT_GUID)
NOT IN (
=C2=A0 =C2=A0 =C2=A0SELECT
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0IS_OBJ_GUID
=C2=A0 =C2=A0 =C2=A0FROM
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0TMP_IS_SEC_FILT T0,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0IS_PROJ P0
=C2=A0 =C2=A0 =C2=A0WHERE
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0T0.IS_PROJ_GUID =3D P0.IS_PROJ_GUID
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0AND P0.IS_PROJ_ID =3D IS_SEC_FILT.IS_PROJ= _ID)
AND (IS_PROJ_ID) IN (
=C2=A0 =C2=A0 =C2=A0SELECT
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0IS_PROJ_ID
=C2=A0 =C2=A0 =C2=A0FROM
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0IS_PROJ P0,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0TMP_IS_SEC_FILT T0,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0EM_MD R0
=C2=A0 =C2=A0 =C2=A0WHERE
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0T0.IS_REPOSITORY_GUID =3D R0.REP_GUID
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0AND T0.IS_PROJ_GUID =3D P0.IS_PROJ_GUID =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0AND P0.IS_REPOSITORY_ID =3D R0.REP_ID);

>
> Regards
> Siraj

--
Adrian Klaver
adrian.klave= r@aklaver.com

--00000000000047c8b70622857852--