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 { ... }