On Mon, 27 Jan 2014 18:57:26 +0100
Jean-Christophe Deschamps <j...@antichoc.net> wrote:

> (
> select * from A where x in (subselectA)
> left outer join
> select * from B where y in (subselectB)
> )
> 
> union all
> 
> (  -- <-- error
> select * from B where y in (subselectC)
> left outer join
> select * from A where x in (subselectD)
> )

Perhaps you want:

select * from (
       select * from A where x in (subselectA)
       left outer join (
            select * from B where y in (subselectB)
       ) as a
       on -- something
) as A1

  UNION ALL

select * from (
       select * from B where y in (subselectC)
       left outer join (
            select * from A where x in (subselectD)
       ) as b
       on -- something
) as B1

JOIN takes tables (or table-like objects) as operands.  SELECT does not
yield a table unless it's wrapped in parenthesis.  

(I generally put UNION in uppercase to make it stand out, lest on a
quick scan it seem like two separate statements.)  

HTH.

--jkl
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to