> > No, it isn't. ÂThis is a three-way join between consolidated_urls, cu, > and tu --- the fact that cu is the same underlying table as cu is an alias for consolidated_urls. tu is an alias for trending_urls. There are only two tables in the query. > consolidated_urls doesn't change that. ÂAnd the join is > underconstrained, causing each row of consolidated_urls to be joined > to every row of the cu/tu join. ÂThat's why it's taking such an > unreasonably long time --- you're generating many thousands of redundant > updates to each row of consolidated_urls. ÂYou should just write this as > Once again there are only two tables in the query. The join clause is inner join trending_urls tu on tu.consolidated_url_id = cu.id > update consolidated_urls > set screenshot_file_name = tu.screenshot_file_name, > Â screenshot_content_type Â= tu.screenshot_content_type, > Â screenshot_file_size = tu.screenshot_file_size, > Â screenshot_status Â= tu.screenshot_status > from trending_urls tu where tu.consolidated_url_id = consolidated_urls.id > > Postgres is a bit different from some other DBMSes in how it interprets > UPDATE ... FROM syntax. > I'll try this too. Anything to make this query complete in a reasonable amount of time. -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general