J'essaie d'obtenir tous les produits de la base de données avec une seule requête. Je suis bloqué à la partie prix:Obtenir des produits de la base de données
VirtueMart a une table appelée #__vm_product et une autre appelée #__vm_product_price.
Si un produit a un produit parent, cela signifie que le produit hérite de tout du parent sauf s'il est différent dans l'enfant.
Les tableaux ressemblent à ceci:
/* #__vm_product PARTIAL */
int - product_id
int - product_parent_id
varchar - product_name
/* #__vm_product_price PARTIAL */
int - product_id
decimal - product_price
int - mdate
J'ai fait la prochaine requête qui obtient tous les produits avec leur prix:
SELECT
p.product_id AS id,
product_name AS name,
product_price AS price,
p.product_parent_id AS parent,
MAX(pp.mdate) AS last_updated
FROM jos_vm_product p
LEFT JOIN jos_vm_product_price pp ON p.product_id = pp.product_id
GROUP BY p.product_id
ORDER BY p.product_id
Le problème avec cette requête est qu'il ne vérifie pas si leur est un prix spécifié. Donc, si c'est un produit pour enfant et qu'il n'a pas de prix, il devrait indiquer le prix de son parent.
Quelqu'un pourrait m'aider avec ça?
Note: Si quelqu'un connaît un moyen plus facile d'obtenir tous les produits (avec prix) de la base de données VirtueMart, s'il vous plaît ne me dérange pas de me dire :)
EDIT: Le prix est jamais nul. Si l'enfant est supposé hériter de son parent, il n'a tout simplement pas de ligne de prix dans jos_vm_product_price
Je ne sais pas comment résoudre cette requête. Il n'utilise pas non plus jos_vm_product_price ce qui rend difficile pour moi de savoir lequel est supposé être le tableau des prix. – MrSoundless
Désolé, cela ne renvoie que les produits pour enfants. Lisez aussi la note EDIT dans le post principal car j'ai fait une "petite" erreur dans mon explication. – MrSoundless
Voir ma mise à jour. J'ai supposé de votre texte précédent que tous les produits que vous vouliez avaient des parents. – RedFilter