pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Fay Du <fay.du@versaterm.com>
To: 'Gábriel Ákos' <akos.gabriel@i-logic.hu>
To: pgsql-sql@postgresql.org
Subject: Re: Update question
Date: Tue, 28 Mar 2006 13:33:02 -0500
Message-ID: <00c301c65296$0c21c6b0$b8d849c6@versaterm.com> (raw)
In-Reply-To: <4429739F.6020205@i-logic.hu>

Markus and Gábriel:
Thank you very much for the help.
Yes, the table is redundant. What I am trying to do is using pgdijstra
module from postGIS which is on the top of postgreSQL. And the module
asks for entire network is directional or non-directional. But my
network part is directional and other part is non-directional. I made it
is directional by duplicate all non-directional edges into 2 directional
edges and it is where redundant come from. And the module only accept
data from one table, so I have to keep all data in one table.

Thanks again.
Fay

-----Original Message-----
From: pgsql-sql-owner@postgresql.org
[mailto:pgsql-sql-owner@postgresql.org] On Behalf Of Gábriel Ákos
Sent: Tuesday, March 28, 2006 12:34 PM
To: pgsql-sql@postgresql.org
Subject: Re: [SQL] Update question

Markus Schaber wrote:
> Hi, Fay,
> 
> Fay Du wrote:
>> Table cost
>>
>> Id  edge_id    cost
>> 1       30         101.4
>> 2       30          null
>> 3       40          500.2
>> 4       40           null
>> 5        45          300.7
>> 6        45           null
> 
>> I want to set cost value with same edge_id by same value. The
existing
>> values are calculated by calling a function (calculate edge length).
I
>> can calculate the value by same function, but the function was slow.
I
>> wander if I can use update statement to set the second value with
same
>> edge_id. Thanks in advance for your help.
> 
> It should go like:
> 
> UPDATE cost SET edge_id = (SELECT cost FROM cost innr WHERE
innr.edge_id
> = edge_id AND innr.cost is not null) WHERE cost is null;
> 
> HTH,
> Marku
> 

This is ok, but this is redundant, i guess. you should put edge_id and
cost into another table and use join to retrieve cost for each id.
put a key on edge_id, most likely a primary (unique) key.


-- 
Üdvözlettel,
Gábriel Ákos
-=E-Mail :akos.gabriel@i-logic.hu|Web:  http://www.i-logic.hu=-
-=Tel/fax:+3612367353            |Mobil:+36209278894            =-


---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
       subscribe-nomail command to majordomo@postgresql.org so that your
       message can get through to the mailing list cleanly




view thread (11+ messages)

Message-ID: <00c301c65296$0c21c6b0$b8d849c6@versaterm.com>
Permalink:  ../00c301c65296$0c21c6b0$b8d849c6@versaterm.com/
Also on:    postgresql.org/message-id/00c301c65296$0c21c6b0$b8d849c6@versaterm.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-sql@postgresql.org
  Cc: fay.du@versaterm.com, akos.gabriel@i-logic.hu
  Subject: Re: Update question
  In-Reply-To: <00c301c65296$0c21c6b0$b8d849c6@versaterm.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox