[Ur] Multiple joins with an outer join
    Adam Chlipala 
    adamc at csail.mit.edu
       
    Mon Jul  3 15:16:54 EDT 2017
    
    
  
One way is to change:
     files.Key
into:
     {sql_nullable (SQL files.Key)}
That's a kind of cast into a nullable type, to match the type of the 
other operand.
I don't see a way around changing types to indicate that any column of 
an outer-joined table could be null.
On 07/03/2017 02:58 PM, Athene Noctua wrote:
> I'm having trouble with a query using multiple joins, one of which is 
> an outer join:
>
> SELECT * FROM posts
> LEFT OUTER JOIN post_files ON post_files.Post = posts.Key
> JOIN files ON post_files.File = files.Key
>
> I think the type system assumes that posts_files.File will exist even 
> though a post might not have any associated files, and end ups with this:
>
> Can't resolve type class instance
>        Class constraint:
> {Post_files :
>   {File : nullify string string,
>     Post : nullify int (option int)}}
> Reduced to unresolvable:
> {File : nullify string string,
>   Post : nullify int (option int)}
>
> Is this query resolvable in some way?
    
    
More information about the Ur
mailing list