On Thu, Sep 4, 2008 at 3:22 PM, Sam Mason <sam@xxxxxxxxxxxxx> wrote: > On Thu, Sep 04, 2008 at 03:43:33PM -0500, D. Dante Lorenso wrote: >> I came up with this query that works, but seems overly complicated: >> >> SELECT a.col1, a.col2, b.col3, b.col4 >> FROM >> (SELECT col1, col3, TRUE AS join_column >> FROM mytable >> WHERE uid = 'abc') a >> FULL OUTER JOIN >> (SELECT col3, col4, TRUE AS join_column >> FROM mytable >> WHERE uid = 'def') b >> ON (a.join_column = b.join_column); >> >> Is this how to do it, or is there a simpler syntax I'm missing? > > The "ON" clause is just a normal expression, so you can just put a > "TRUE" in there if you want a cross join. I.e. the following is a > minimal full outer cross join: > > SELECT * FROM foo FULL OUTER JOIN bar ON TRUE; can't you just drop the on clause altogether?