->joinAdd() -- add another dataobject to build a create join query
Description
Builds a Join Query, by adding another dataobject to this one. Be careful when using this,
raw queries may be clearer than using joinAdd.
Note
This function can not be called statically
The Examples below are not tested, use DB_DataObject::debugLevel(1), to see what
exactly is going on when you use this, and send the author some better examples..
Example
Example 20-1. Simple simple Join // (requires links.ini to be set up correctly)
// get all the images for product 24
$i = new DataObject_Image();
$pi = new DataObjects_Product_image();
$pi->product_id = 24; // set the product id to 24
$i->joinAdd($pi); // add the product_image connectoin
$i->find();
while ($i->fetch()) {
// do stuff
} |
|
Example 20-2. Resulting SQL SELECT * FROM image,product_image
LEFT JOIN image ON prooduct_image
WHERE product_image.id = 24
AND product_image.pid = product.id |
|
Example 20-3. More Complex Join query // an example with 2 joins
// get all the images linked with products or productgroups
$i = new DataObject_Image();
$pi = new DataObject_Product_image();
$pgi = new DataObject_Productgroup_image();
$i->joinAdd($pi);
$i->joinAdd($pgi);
$i->find();
while ($i->fetch()) {
// do stuff
} |
|
Example 20-4. Resulting SQL SELECT * FROM image,product_image
LEFT JOIN image ON prooduct_image
LEFT JOIN image ON prooductgroup_image
WHERE product
AND product.id = product_image.pid
AND product.id = productgroup_image.pid |
|