Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eX5Z4-0001UL-Qz for pgsql-sql@arkaria.postgresql.org; Thu, 04 Jan 2018 13:28:11 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eX5Z4-0007f8-Cx for pgsql-sql@arkaria.postgresql.org; Thu, 04 Jan 2018 13:28:10 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1eX5Z3-0007ez-S7 for pgsql-sql@lists.postgresql.org; Thu, 04 Jan 2018 13:28:10 +0000 Received: from post.visena.com ([46.226.10.50]) by makus.postgresql.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1eX5Z0-0000PO-34 for pgsql-sql@lists.postgresql.org; Thu, 04 Jan 2018 13:28:08 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=visena.com; s=20141101.wh; h=Content-Type:MIME-Version:Subject:In-Reply-To:Message-ID:To:From:Date; bh=XpOUgNb6mlUU2B8e3h/Iky4f8mMhvf43GAAv+8jrQvQ=; b=X/TIjNDfA4ZVgj/ZTeg6nHOcdM5aG4G6bXu2xx9aIO3VgGRsQowdwgLfTEtwaVh8Bza4LbIpA5UhDU9BEqRue6Qz7u6lHYA5GDh7+yoBn/TxlFn+lUUSFOKeLeNkMIj5oErs4Lg4vO9g8xyeWcx7Bl3tWJeg9GABEj2JeSG7WaM=; Received: from [10.0.1.10] (helo=tc7-visena.wh.internal.visena.com) by post.visena.com with esmtp (Exim 4.82) (envelope-from ) id 1eX5Yt-0000au-V1 for pgsql-sql@lists.postgresql.org; Thu, 04 Jan 2018 14:28:02 +0100 Received: from localhost ([127.0.0.1] helo=tc7-visena.wh.internal.visena.com) by tc7-visena.wh.internal.visena.com with esmtp (Exim 4.86_2) (envelope-from ) id 1eX5YG-0001DZ-KK for pgsql-sql@lists.postgresql.org; Thu, 04 Jan 2018 14:27:20 +0100 Date: Thu, 4 Jan 2018 14:27:20 +0100 (CET) From: Andreas Joseph Krogh To: pgsql-sql@lists.postgresql.org Message-ID: In-Reply-To: <000001d38553$6c638e80$452aab80$@1nar.com.tr> Subject: Sv: More optimized SQL MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_275_1805675516.1515072440487" X-Mailer: Visena Mail 2.1.0-SNAPSHOT X-Spam-Score: -1.0 X-Spam-Report: SpamAssasin (score=-1.0, required 5.0 ALL_TRUSTED=-1,HTML_MESSAGE=0.001) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk ------=_Part_275_1805675516.1515072440487 Content-Type: multipart/related; boundary="----=_Part_276_1699996199.1515072440487" ------=_Part_276_1699996199.1515072440487 Content-Type: multipart/alternative; boundary="----=_Part_277_1597967140.1515072440503" ------=_Part_277_1597967140.1515072440503 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable P=C3=A5 torsdag 04. januar 2018 kl. 12:59:06, skrev Ertan K=C3=BC=C3=A7=C3= =BCko=C4=9Flu < ertan.kucukoglu@1nar.com.tr >: Hello, I am using PostgreSQL 10.1 64bit on Windows x64. There are following table definitions in my database: =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 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0Table "public.ekstreler" =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Column=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= |=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Type=C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 | Modifiers ------------------------+--------------------------------+----------------= -- ------------------------------------------- =C2=A0autoinc=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | int= eger=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 | not null default nextval('ekstreler_autoinc_seq'::regclass) =C2=A0yil=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 | smallint=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=A0ay=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0| smallint=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=A0turu=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0| smallint=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=A0firmakodu=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | characte= r varying(20)=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | =C2=A0carikodu=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| cha= racter varying(40)=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | =C2=A0parabirimi=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| characte= r varying(5)=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| =C2=A0borc=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0| numeric(20,4)=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 | =C2=A0alacak=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= | numeric(20,4)=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 | =C2=A0borcbakiye=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| numeric(= 20,4)=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | =C2=A0alacakbakiye=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| numeric(20,4)= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | =C2=A0emailid=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | uui= d=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=A0emailgonderilecek=C2=A0 =C2=A0 =C2=A0 | boolean=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=A0emaildenemesi=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | smallint=C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| = default 0 =C2=A0emailsondenemezamani=C2=A0 =C2=A0| timestamp(0) without time zone | =C2=A0emailsonhatasi=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| text=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=A0emailgonderilenadet=C2=A0 =C2=A0 | smallint=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| default 0 =C2=A0emailsongonderimzamani | timestamp(0) without time zone | =C2=A0cevapadedi=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| smallint= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0| default 0 =C2=A0soncevap=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| boo= lean=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=A0soncevapzamani=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| timestamp(0) witho= ut time zone | =C2=A0kaydeden=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| cha= racter varying(20)=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | =C2=A0kayitzamani=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | timestamp(0) = without time zone | =C2=A0degistiren=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| characte= r varying(20)=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | =C2=A0degisiklikzamani=C2=A0 =C2=A0 =C2=A0 =C2=A0| timestamp(0) without ti= me zone | Indexes: =C2=A0 =C2=A0 "ekstreler_pkey" PRIMARY KEY, btree (autoinc) =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 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 Table "public.cevaplar" =C2=A0 =C2=A0 =C2=A0 =C2=A0 Column=C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Type=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 | Modifiers ----------------------+--------------------------------+------------------= -- ---------------------------------------- =C2=A0autoinc=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | integer=C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 | not null default nextval('cevaplar_autoinc_seq'::regclass) =C2=A0yil=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | = smallint=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=A0ay=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0| smallint=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=A0turu=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| = smallint=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=A0emailid=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | uuid=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=A0verilencevap=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| boolean=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=A0cevapzamani=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | timestamp(0) without= time zone | =C2=A0cevapverenipnumarasi | cidr=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=A0kaydeden=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| character = varying(20)=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | =C2=A0kayitzamani=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | timestamp(0) without= time zone | Indexes: =C2=A0 =C2=A0 "cevaplar_pkey" PRIMARY KEY, btree (autoinc) Cevaplar table is getting data from an outside source and an application i= s inserting each record into that table. After import operation completes, i= t is needed to update with most recent data that is different than in ekstreler table. Below is current SQL that I came up with. However, I wond= er if there is a better approach to write it. update ekstreler set =C2=A0 soncevap =3D (select verilencevap from cevaplar where cevaplar.yil = =3D ekstreler.yil and cevaplar.ay =3D ekstreler.ay and cevaplar.turu =3D ekstreler.turu and cevaplar.emailid =3D ekstreler.emailid order by cevapza= mani desc limit 1), =C2=A0 soncevapzamani =3D (select cevapzamani from cevaplar where cevaplar= .yil =3D ekstreler.yil and cevaplar.ay =3D ekstreler.ay and cevaplar.turu =3D ekstreler.turu and cevaplar.emailid =3D ekstreler.emailid order by cevapza= mani desc limit 1) where =C2=A0 emailgonderilecek =3D false and =C2=A0 soncevapzamani <> (select cevapzamani from cevaplar where cevaplar.= yil =3D ekstreler.yil and cevaplar.ay =3D ekstreler.ay and cevaplar.turu =3D ekstreler.turu and cevaplar.emailid =3D ekstreler.emailid order by cevapza= mani desc limit 1) =C2=A0 Yes, use UPDATE SET ... FROM <...> WHERE ... https://www.postgresql.org/docs/10/static/sql-update.html =C2=A0 which is a PostgreSQL-extention to the SQL-standard. =C2=A0 -- Andreas Joseph Krogh CTO / Partner - Visena AS Mobile: +47 909 56 963 andreas@visena.com www.visena.com =C2=A0 ------=_Part_277_1597967140.1515072440503 Content-Type: text/html;charset=UTF-8 Content-Transfer-Encoding: quoted-printable
P=C3=A5 torsdag 04. januar 2018 kl. 12:59:06, skrev Ertan K=C3=BC=C3= =A7=C3=BCko=C4=9Flu <erta= n.kucukoglu@1nar.com.tr>:
Hel= lo,

I am using PostgreSQL 10.1 64bit on Windows x64. There are following table<= br> definitions in my database:

=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 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0Table "public.ekstreler"
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Column=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Type=C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 |
Modifiers
------------------------+--------------------------------+-----------------= -
-------------------------------------------
=C2=A0autoinc=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | inte= ger=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 | not null default
nextval('ekstreler_autoinc_seq'::regclass)
=C2=A0yil=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 | smallint=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=A0ay=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0| smallint=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=A0turu=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0| smallint=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=A0firmakodu=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | character= varying(20)=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |
=C2=A0carikodu=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| char= acter varying(40)=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |
=C2=A0parabirimi=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| character= varying(5)=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|
=C2=A0borc=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0| numeric(20,4)=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 |
=C2=A0alacak=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|= numeric(20,4)=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 |
=C2=A0borcbakiye=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| numeric(2= 0,4)=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |
=C2=A0alacakbakiye=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| numeric(20,4)= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |
=C2=A0emailid=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | uuid= =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=A0emailgonderilecek=C2=A0 =C2=A0 =C2=A0 | boolean=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=A0emaildenemesi=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | smallint=C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| = default 0
=C2=A0emailsondenemezamani=C2=A0 =C2=A0| timestamp(0) without time zone | =C2=A0emailsonhatasi=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| text=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=A0emailgonderilenadet=C2=A0 =C2=A0 | smallint=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| default 0
=C2=A0emailsongonderimzamani | timestamp(0) without time zone |
=C2=A0cevapadedi=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| smallint= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0| default 0
=C2=A0soncevap=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| bool= ean=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=A0soncevapzamani=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| timestamp(0) withou= t time zone |
=C2=A0kaydeden=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| char= acter varying(20)=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |
=C2=A0kayitzamani=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | timestamp(0) w= ithout time zone |
=C2=A0degistiren=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| character= varying(20)=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |
=C2=A0degisiklikzamani=C2=A0 =C2=A0 =C2=A0 =C2=A0| timestamp(0) without tim= e zone |
Indexes:
=C2=A0 =C2=A0 "ekstreler_pkey" PRIMARY KEY, btree (autoinc)



=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 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 Table "public.cevaplar"
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Column=C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Type=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 |
Modifiers
----------------------+--------------------------------+-------------------= -
----------------------------------------
=C2=A0autoinc=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | integer=C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 | not null default
nextval('cevaplar_autoinc_seq'::regclass)
=C2=A0yil=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | s= mallint=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=A0ay=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0| smallint=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=A0turu=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| s= mallint=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=A0emailid=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | uuid=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=A0verilencevap=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| boolean=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=A0cevapzamani=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | timestamp(0) without = time zone |
=C2=A0cevapverenipnumarasi | cidr=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=A0kaydeden=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| character v= arying(20)=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |
=C2=A0kayitzamani=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | timestamp(0) without = time zone |
Indexes:
=C2=A0 =C2=A0 "cevaplar_pkey" PRIMARY KEY, btree (autoinc)

Cevaplar table is getting data from an outside source and an application is=
inserting each record into that table. After import operation completes, it=
is needed to update with most recent data that is different than in
ekstreler table. Below is current SQL that I came up with. However, I wonde= r
if there is a better approach to write it.

update ekstreler
set
=C2=A0 soncevap =3D (select verilencevap from cevaplar where cevaplar.yil = =3D
ekstreler.yil and cevaplar.ay =3D ekstreler.ay and cevaplar.turu =3D
ekstreler.turu and cevaplar.emailid =3D ekstreler.emailid order by cevapzam= ani
desc limit 1),
=C2=A0 soncevapzamani =3D (select cevapzamani from cevaplar where cevaplar.= yil =3D
ekstreler.yil and cevaplar.ay =3D ekstreler.ay and cevaplar.turu =3D
ekstreler.turu and cevaplar.emailid =3D ekstreler.emailid order by cevapzam= ani
desc limit 1)
where
=C2=A0 emailgonderilecek =3D false and
=C2=A0 soncevapzamani <> (select cevapzamani from cevaplar where ceva= plar.yil =3D
ekstreler.yil and cevaplar.ay =3D ekstreler.ay and cevaplar.turu =3D
ekstreler.turu and cevaplar.emailid =3D ekstreler.emailid order by cevapzam= ani
desc limit 1)
=C2=A0
Yes, use UPDATE <table> SET ... FROM <...> WHERE ...
https://www.postgresql.org/docs/10/static/sql-update.html
=C2=A0
which is a PostgreSQL-extention to the SQL-standard.
=C2=A0
--
Andrea= s Joseph Krogh
CTO / Partner<= /span> - Visena AS
Mobile: +47 90= 9 56 963
=3D""
=C2=A0
------=_Part_277_1597967140.1515072440503-- ------=_Part_276_1699996199.1515072440487 Content-Type: image/png Content-Transfer-Encoding: base64 Content-Disposition: inline Content-ID: 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 ------=_Part_276_1699996199.1515072440487-- ------=_Part_275_1805675516.1515072440487--