Search Postgresql Archives

Fwd: [SQL] Query question

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Didn't reply-all....

Begin forwarded message:

From: David Johnston <polobo@xxxxxxxxx>
Date: January 27, 2012 9:01:37 EST
To: John Tuliao <jptuliao@xxxxxxxxxxxxx>
Subject: Re: [SQL] Query question

On Jan 26, 2012, at 7:00, John Tuliao <jptuliao@xxxxxxxxxxxxx> wrote:

I seem to have a problem with a specific query:

The inside query seems to work on it's own:

          select prefix
          from john_prefix
          where strpos(jpt_test.number,john_prefix.prefix) = '1'
          order by char_length(john_prefix.prefix) desc limit 1

but when I execute it with this:

UPDATE
  jpt_test
set
  number = substring(number from length(john_prefix.prefix)+1)
from
  john_prefix
where
  prefix in (
          select prefix
          from john_prefix
          where strpos(jpt_test.number,john_prefix.prefix) = '1'
          order by char_length(john_prefix.prefix) desc limit 1
  ) ;

table contents are as follows

john_prefix table:

prefix
---------
123
234

jpt_test table:

number
-----------
1237999999
0234999999 <<< supposed to have no match
2349999999

Am I missing something here? Any help will be appreciated.

Regards,
JPT



Your double-use of john_prefix is problematic; combined with the use of a sub-query in the where clause.  When you use from with update you need to specify how the from table and the update table are related - you have not done this since the sub-query from reference is not the same as the from clause table reference.

David J.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux