Comment joindre une autre table proprement
Bonjour,
Je suis face à un petit problème de syntaxe que je n'arrive pas a resoudre.
Voici ma requete initiale qui fontionne très bien
Code:
1 2 3 4 5 6 7
|
// REQUETE NIVEAU 3
$queryCat3rdLevel = " SELECT c.id_category, c.level_depth, c.id_parent, c.active, l.id_category, l.name, l.id_lang FROM "._DB_PREFIX_."category c
INNER JOIN "._DB_PREFIX_."category_lang l ON c.id_category = l.id_category
WHERE c.active = 1 AND c.level_depth = 3 AND c.id_parent = ".$poolCategories[$key1]['child'][$key2]['id_category']." AND l.id_lang = ".$language."
ORDER BY l.name ASC";
$resultCat3rdLevel= Db::getInstance()->s($queryCat3rdLevel); |
J'ai une autre table category_product ou sont stcker l'id des produit lié à une categorie
J'ai juste besoin de savoir s'il y a au moins un produit. Le nombre m'est egal
Donc pour cela je doins joindre ma table category_product et je l'ai fait ainsi
Code:
1 2 3 4 5 6 7 8
|
$queryCat3rdLevel= " SELECT c.id_category, c.level_depth, c.id_parent, c.active, l.id_category, l.name, l.id_lang , pc.id_category, pc.id_product
FROM "._DB_PREFIX_."category c
INNER JOIN "._DB_PREFIX_."category_lang l ON c.id_category = l.id_category
LEFT JOIN "._DB_PREFIX_."category_product pc ON c.id_category = pc.id_category
WHERE c.active = 1 AND c.level_depth = 3 AND c.id_parent = ".$poolCategories[$key1]['child'][$key2]['id_category']." AND l.id_lang = ".$language."
ORDER BY l.name ASC";
$resultCat3rdLevel= Db::getInstance()->s($queryCat3rdLevel); |
Le problème c'est que me crère un doublon. C'est dure d'explique comme cela, mais deux mots, le l.name est afficher deux fois, alors qu'il ne l'était qu'une fois.
Je sais pas si je fourni aussez d'information, mais le but initial est de questionner la table category_product pour savoir s'il y a au moins un produit associé à cette categorie, si oui je peux avoir un true ou false, dans l'array $resultCat3rdLevel.
Es-ce que je vous ai founri assez d'info?
Milles mercis