citromatik has asked for the wisdom of the Perl Monks concerning the following question:
Hi all
I am trying to build an SQL query with SQL::Abstract but I can't find how to join tables. For example, suppose that I want to get the following SQL query:
SELECT users.username FROM users, drivers WHERE users.userid=drivers.u +serid AND drivers.name="John"
This is my SQL::Abstract code:
my $sql = SQL::Abstract->new; my($stmt2, @bind2) = $sql->select("users, drivers", ["users.username"] +, {"drivers.name" => "John"});
This, generates the following:
$stmt2 = "SELECT users.username FROM users, drivers WHERE ( drivers.na +me = ? )" @bind2 = ("John")
My question is, ¿How can I include the join users.userid=drivers.userid inside the WHERE clause?. This doesn't work:
my($stmt2, @bind2) = $sql->select("users, drivers", ["users.username"] +, {"drivers.name" => "John","users.userid" => "drivers.userid"});
Because SQL::Abstract treats drivers.userid as a quoted string.
In DBIx::Abstract you can do this by playing with the join field:
$dbh->select({ fields=>'*', table=>'foo,bar', join=>'foo.id=bar.foo_id', ## <--- HERE where=>{'foo.dollars',['>',30]} });
But I can't find its equivalent in SQL::Abstract
Does anybody know how to do that?
Thank you very much in advance,
citromatik
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: joining tables with SQL::Abstract
by pc88mxer (Vicar) on Jun 11, 2008 at 18:04 UTC | |
by citromatik (Curate) on Jun 25, 2008 at 11:27 UTC | |
by larryl (Monk) on Nov 19, 2008 at 17:32 UTC | |
|
Re: joining tables with SQL::Abstract
by perrin (Chancellor) on Jun 11, 2008 at 19:33 UTC | |
|
Re: joining tables with SQL::Abstract
by dragonchild (Archbishop) on Jun 11, 2008 at 19:17 UTC | |
|
Re: joining tables with SQL::Abstract
by Herkum (Parson) on Jun 11, 2008 at 18:36 UTC |