Re: [GENERAL] updating dup row - Mailing list pgsql-general

From John R Pierce
Subject Re: [GENERAL] updating dup row
Date
Msg-id 8a579838-c767-6ba0-f5df-1ff41c157f84@hogranch.com
Whole thread Raw
In response to [GENERAL] updating dup row  (Patrick B <patrickbakerbr@gmail.com>)
List pgsql-general
On 2/16/2017 6:25 PM, Patrick B wrote:
how can I update a row with newest id from another table if it exists somewhere else?

Example:

table test1
  • id (primary key)
  • id_user_bill
  • clientid
table test2
  • item_id
  • userid (there are duplicated rows here)
  • clientid
  • id (primary key)
-- finding the dup records
INSERT INTO test2_results 
SELECT 
item_id,
userid
count(*) as dup_count,
MAX(id) as recent_id
FROM
test2
GROUP BY 
item_id,
userid
HAVING COUNT(*) > 1;

if test1.id_user_bill = test2.id, then
update test1.id_user_bill with test2_results.recent_id


UPDATE test1 SET test1.id_user_bill = test2_results.recent_id FROM test2_results WHERE test1.id_user_bill = test2_results.item_id;

(at least if I interpret what you're asking correctly, there's some errors there, for instance, there's no such field as test2.id shown, and the schema of test2_results is undefined, too)

'from' works very much like a INNER JOIN, and the WHERE clause has to include the join condition.

-- 
john r pierce, recycling bits in santa cruz

pgsql-general by date:

Previous
From: Patrick B
Date:
Subject: [GENERAL] updating dup row
Next
From: James Sewell
Date:
Subject: Re: [GENERAL] PostgreSQL corruption