Ok - here goes - this has been giving me a headache for a while now:

Table: current_sessions
Fields: Server (int Foreign Key servers.id)
Client (int Foreign Key clients.id)
status (vc(10))

Table: clients
Fields: id (serial Pkey)
username (UNIQUE)

Table: servers
Fields: id (serial Pkey)
username (UNIQUE)

Normally, the username of the client should come from the clients table, hence you'd inner join plainly.
IF the status is 'ADMIN' however - it means both the server and the client come from the servers table.

HOW ( if at all ) can i pull this off in a join without having to restructure the tables?
This is what i did have:

SELECT cs.id, s.username AS Server, c.username AS
Client from current_sessions cs INNER JOIN clients c ON (cs.client=c.id) INNER JOIN servers s ON (cs.server=s.id) where cs.status!='AVAIL' AND ((cs.server=1) OR (cs.client=1 AND cs.status='ADMIN'));

Any ideas?