PEAR is archived and read-only

This mirror preserves historical PEAR package releases and metadata so existing references remain available.

Home » Database » DB_QueryTool » Bug #2515

Adding more than one Left-Join doesn´t work properly

Details

Submitted2004-10-12 15:21 UTC
Fromskopek at mediatac dot com
Assignedquipo
StatusClosed
PackageDB_QueryTool
PHP Version4.3.6
OSWindows XP
Roadmaps(Not assigned)

Comments

[2004-10-12 15:21 UTC] skopek at mediatac dot com

Description:
------------
Version:
DB_QueryTool 0.10.1, PHP 4.3.6, MySQL 4.0.20a-nt

There is a problem with adding multiple LEFT-joins (or RIGHT-Joins) using DB_QueryTool. The resulting SQL-Statement doesn´t work properly.
Adding multiple Joins (not LEFT or RIGHT, but with WHERE!) are working perfectly instead.

Reproduce code:
---------------
$qt = new DB_QueryTool($aDSN);
//Product-Table
$qt->table = "product_data";
$qt->primaryCol = "id";
//add Joins on tables manufacturer_data and product_groups
$qt->addJoin("manufacturer_data", "product_data.manufacturer_id=manufacturer_data.id", "left");
$qt->addJoin("product_groups", "product_data.product_groups_id=product_groups.id", "left");
echo $qt->getQueryString();

Expected result:
----------------
SELECT manufacturer_data.id AS "_data_id", manufacturer_data.name AS "_data_name", manufacturer_data.description AS "_data_description", manufacturer_data.notice AS "_data_notice", manufacturer_data._deleted AS "_data__deleted", manufacturer_data._lastmodified AS "_data__lastmodified", manufacturer_data._datecreated AS "_data__datecreated", product_groups.id AS "_groups_id", product_groups.name AS "_groups_name", product_groups.description AS "_groups_description", product_groups._deleted AS "_groups__deleted", product_groups._lastmodified AS "_groups__lastmodified", product_groups._datecreated AS "_groups__datecreated", product_data.id AS "id", product_data.name AS "name", product_data.description AS "description", product_data.buy_price AS "buy_price", product_data.sell_price AS "sell_price", product_data.weight AS "weight", product_data.bulkgood AS "bulkgood", product_data.width AS "width", product_data.height AS "height", product_data.length AS "length", product_data.manufacturer_id AS "manufacturer_id", product_data.tax_class_id AS "tax_class_id", product_data.product_groups_id AS "product_groups_id", product_data.product_images_id AS "product_images_id", product_data.is_active AS "is_active", product_data._deleted AS "_deleted", product_data._lastmodified AS "_lastmodified", product_data._datecreated AS "_datecreated"
FROM product_data
LEFT JOIN manufacturer_data ON product_data.manufacturer_id = manufacturer_data.id
LEFT JOIN product_groups ON product_data.product_groups_id = product_groups.id
LIMIT 0 , 30

Actual result:
--------------
SELECT manufacturer_data.id AS "_data_id",manufacturer_data.name AS "_data_name",manufacturer_data.description AS "_data_description",manufacturer_data.notice AS "_data_notice",manufacturer_data._deleted AS "_data__deleted",manufacturer_data._lastmodified AS "_data__lastmodified",manufacturer_data._datecreated AS "_data__datecreated",product_groups.id AS "_groups_id",product_groups.name AS "_groups_name",product_groups.description AS "_groups_description",product_groups._deleted AS "_groups__deleted",product_groups._lastmodified AS "_groups__lastmodified",product_groups._datecreated AS "_groups__datecreated",product_data.id AS "id",product_data.name AS "name",product_data.description AS "description",product_data.buy_price AS "buy_price",product_data.sell_price AS "sell_price",product_data.weight AS "weight",product_data.bulkgood AS "bulkgood",product_data.width AS "width",product_data.height AS "height",product_data.length AS "length",product_data.manufacturer_id AS "manufacturer_id",product_data.tax_class_id AS "tax_class_id",product_data.product_groups_id AS "product_groups_id",product_data.product_images_id AS "product_images_id",product_data.is_active AS "is_active",product_data._deleted AS "_deleted",product_data._lastmodified AS "_lastmodified",product_data._datecreated AS "_datecreated" FROM product_data LEFT JOIN manufacturer_data ON product_data.manufacturer_id=manufacturer_data.id AND product_data.product_groups_id=product_groups.id