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
In reply to joining tables with SQL::Abstract by citromatik
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |