NAME
    SQL::Abstract::Builder - Builds and executers relational queries

SYNOPSIS
        my @docs = query {"dbi:mysql:$db",$user} build {
            -columns => [qw(id foo bar)],
            -from => 'table1',
            -key => 'id',
        } include {
            -columns => [qw(id baz glarch)],
            -from => 'table2',
            -key => 'table1_id',
        } include {
            -columns => [qw(id alfa)],
            -from => 'table3',
            -key => 'table1_id',
        };

DESCRIPTION
    It gives you a very simple way to define fetch documents (rows and
    related children) from your relational DB (instead of just rows).

METHODS
  query
    Executes the built query. Takes either a DBIx::Simple connection or the
    same arguments that are valid for "DBIx::Simple-"connect>.

   Usage
        my @docs = query {"dbi:mysql:$db",$user} ...
        # OR
        my @docs = query {$dbh} ...

  build
    Builds the query assuming the given table is the base.

   Usage
        my @refs = build { ... } ...

  include
    Includes the results of a "JOIN" on the given table when built.

   Usage
        my @refs = build { ... } include { ... }