Steve,

Op 05-11-11 05:51, Steve Murphy schreef:
I give! I'm flummoxed!

Here is what I have, 3 tables:

schedule

company building status0

3 x active

4 x active

5 x active

3 x active

3 x active

3 x active

In the end, I want to replace the building id's above. They start out with the 
non-informative value of '1';

company

id name status

3 x active

4 y active

5 z active

building

id company name

1 3 A active

2 3 B active

3 3 C active

4 4 D active

5 4 E active

6 4 F active

7 5 G active

8 5 H active

9 5 I active

So, every company has 3 schedules. Of the 3, I'd like to select the *one* with 
the lowest id.



I think you mean every company has three buildings...


I'm using postgresql 8.1. Yes, ancient, but I have no choice in this affair.

select schedule.id as sched_id, bld.id as bid

from

schedule

left join company on schedule.company = company.id

left join (select * from building where building.company = company.id order by 
id limit 1) as bld

where

schedule.status = 'active' and company.status = 'active' and bld.status = 
'active';

I get a syntax error on the the "where".

ERROR: syntax error at or near "where" at character ….

LINE 6: where

^

If I leave out the where clause entirely, that's an error also,

ERROR: syntax error at or near ";" at character ….

LINE 5: … as bld ;

^ <it's right under the semicolon>

So, it's expecting ***SOMETHING*** after the "as bld", but it sure isn't going 
to tell me what.

What am I missing?



I think you actually want to do this:

update schedule set building = (select id from building where company = 
schedule.company order by id limit 1);

Best,
Antonio.



--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Reply via email to