From: | Alexander Reichstadt <lxr(at)mac(dot)com> |
---|---|
To: | pgsql-general(at)postgresql(dot)org |
Subject: | SELECT issue with references to different tables |
Date: | 2012-06-02 18:50:53 |
Message-ID: | D91CC34A-7FBC-4B73-9749-7B7BE77D3452@mac.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Hi,
I have a query I cannot figure out in postgres or actually in any other way than using the client front end, which I would prefer not to do.
So, I have 4 tables
pets
persons
companies
pets_reference
pets have owners, the owner at any point in time is either a persons or a company, never both at the same time.
So, the pets_reference table has the fields:
refid_pets matching table pets, field id
refid_persons matching table persons, field id
refid_companies matching table companies, field id
ownersince which is a timestamp
A pet owner can change to persons A, resulting in a record in pets_reference connecting pet and person with a timestamp, setting refid_companies to zero and refid_persons to person A's record's id value. If the owner changes to some other person B, then another record is added to pets_reference. Or if the owner for that pet changes to a company, then a new record is added with refid_persons being zero and refid_companies being the id value of that companies id field value. So at the end of the day pets_reference results in a history of owners.
Now, the problem is with displaying a table with pets and only their current owners. I can't figure out two things.
For one it seems I would need to somehow build a query which uses an if-then branch to check if companies is zero or persons is zero to ensure to either reference a persons or a companies record.
The second issue is that I only need the max(ownersince) record, because I only need the current owner and not past owners.
I toyed around with DISTINCT max(ownersince) and GROUP BY, but it only results in errors. I am not the SQL guru, I know my way around so far and am learning, but this is kind of another league and I can't really show any good results I've come up with so far. Please, can someone help?
Thanks
Alex
From | Date | Subject | |
---|---|---|---|
Next Message | Chris Angelico | 2012-06-02 19:22:02 | Re: SELECT issue with references to different tables |
Previous Message | Jeff Davis | 2012-06-02 17:21:35 | Re: [PERFORM] Array fundamentals |