Thanks - that worked. David ----- Original Message ----- From: "Stephan Szabo" <[EMAIL PROTECTED]> To: "David Griffiths" <[EMAIL PROTECTED]> Cc: <[EMAIL PROTECTED]> Sent: Saturday, October 11, 2003 3:34 PM Subject: Re: [PERFORM] Another weird one with an UPDATE
> On Sat, 11 Oct 2003, David Griffiths wrote: > > > Sorry - just found the FAQ ( > > http://jamesthornton.com/postgres/FAQ/faq-english.html#4.22 > > <http://jamesthornton.com/postgres/FAQ/faq-english.html#4.22> ) on how > > IN is very slow. > > > > So I rewrote the query: > > > > \o ./data/temp.txt > > SELECT current_timestamp; > > UPDATE user_account SET last_name = 'abc' > > WHERE EXISTS (SELECT ua.user_account_id FROM user_account ua, > > commercial_entity ce, commercial_service cs > > WHERE ua.user_account_id = ce.user_account_id AND > > ce.commercial_entity_id = cs.commercial_entity_id); > > SELECT current_timestamp; > > I don't think that's the query you want. You're not binding the subselect > to the outer values of user_account. > > I think you want something like: > UPDATE user_account SET last_name = 'abc' > WHERE EXISTS (SELECT 1 FROM commercial_entity ce, commercial_service cs > WHERE user_account.user_account_id = ce.user_account_id AND > ce.commercial_entity_id = cs.commercial_entity_id); ---------------------------(end of broadcast)--------------------------- TIP 3: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to [EMAIL PROTECTED] so that your message can get through to the mailing list cleanly