Construit une requête de jointure, en ajoutant un autre objet de données à celui déjà présent?
Soyez prudent lorsque vous utilisez cette méthode, les requêtes simples seront plus claires
que lors de l'utilisation de joinAdd().
Merci à Stijn de Reede pour avoir implémenté cette méthode.
Paramètres
object $obj - l'objet à joindre (aucune valeur effacera la jointure courante)
INNER est la valeur par défaut, "" indique juste une requête du type
'select ... from a,b,c' sans jointure et les liens seront ajoutés dans les éléments 'where'.
Note : 'LEFT' est la même chose que LEFT OUTER.
string $joinAs - si vous voulez sélectionner la table sous un autre nom ; utile
lorsque vous voulez sélectionner plusieurs colonnes depuis une seconde table.
string $joinCol - La colonne de cet objet qui correspond, nécessaire
si cette table est liée à un fils de l'objet en plusieurs endroits e.g.
user->friend (is a id of a person)
user->mother (is a id of another person)
Note
Cette fonction ne peut pas être appelée de façon statique.
Les exemples ci-dessous n'ont pas été testés, utilisez DB_DataObject::debugLevel(1),
pour voir exactement ce qu'il se passe lorsque vous les utilisez et envoyez
à l'auteur de meilleurs exemples...
// (nécessite un fichier links.ini correctement définit)
// récupération de toutes les images pour le produit 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()) {
// faites quelques choses
}
// un exemple avec 2 jointures
// récupération de toutes les images liées avec 'products' ou '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()) {
// faites quelques choses
}
SELECT * FROM image,product_image
LEFT JOIN image ON product_image
LEFT JOIN image ON productgroup_image
WHERE product
AND product.id = product_image.pid
AND product.id = productgroup_image.pid