Search Postgresql Archives

Re: Hint for a query

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

 




> I have this tables
> 
> 
> Table: Contact
> IdContact
> First Name
> Second Name
> … other columns
> 
> Table: Employee
> IdEmployee
> IdContact, related to Contact table
> … other columns
> 
> Table: Salesman
> IdSaleman
> IdEmployee, if salesman is employee, related to Employee table
> IdContact, if salesman is not an employee, related to Contact table
> 
> 
> I need a query
> 
> Id Salesman - Second name - First name
> 
> But I can't figure how to do it, can someone can give advise?
> 
> Thanks


Needless to say, this is bit of an odd table layout. You always end up at the 
contact table, but the layout makes it harder to query. Personally I'd have a 
foreign key from the contact table to the employee table, rather than the 
employee table to the contact table - that would also eliminate the employee 
foreign key in the salesman table. It would also allow you to just join the 
salesman table to the contact table and then figure out if the contact is an 
employee.

well, that said. Here's a quick one without a lot of deep thought...

select a.idsalesman, b.firstname, b.secondname from salesman a join contact b 
on b.idcontact=a.idcontact union  select c.idsalesman, d.firstname, 
d.secondname from salesman c join employee e on e.idemployee=c.idemployee join 
contact d on d.idcontact=e.idcontact

No guarantees though. It's midnight here and I had a long day...

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



[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