Can I make interaction between views relations and views arguments? I'm running into the problem where I have to join a node and a registration. The nodes are of type 'event' and the registration is available for some, but not all of them.

So basically I have a list of event nodes, and I left join the registrations on them, giving me some extra information where available. 

The problem is I want to list only my registrations. So a contextual filter has to be added somewhere. The problem; The default filter applies after the join, filtering also all nodes for which I have not yet registered. But I want to show those.

Therefor I am looking for a custom handler that allows me to add an 'extra' statement to the views join clause. I've looked for it, but started t doubt where such  a thing is actually possible. Had anyone ever tried such a thing?

I suppose I need to make a custom hander, it's not a problem. But can handers 'communicate', or is there something like a hybrid handler of some sort?

Wrong query

SELECT ...
FROM 
{node} node
LEFT JOIN {node_registration} node_registration_node ON node.nid = node_registration_node.nid
WHERE (( (node_registration_node.uid = '1' )


Working query, but non contextual

SELECT ...
FROM 
{node} node
LEFT JOIN {node_registration} node_registration_node ON node.nid = node_registration_node.nid AND node_registration_node.uid = '1'
Thanks for the suggestions Andrew, I ended up creating a custom argument-handler. It adds one (or more) extra conditions to the join. LEFT JOIN ... AND ....



function query($group_by = FALSE) {
  $this-&gt;ensure_my_table();

    $this-&gt;query-&gt;table_queue[$this-&gt;table_alias]['join']-&gt;extra = array(
      array('table' =&gt; $this-&gt;table_alias, 'field' =&gt; $this-&gt;real_field, 'value' =&gt; $this-&gt;argument),
    );
  }
}