DISTINCT
supprime les lignes entières en double .
Utilisez GROUP BY p.product_id
pour afficher une ligne par identifiant de produit.
Remarque :Si vous regroupez par product_id, si vous avez plusieurs descriptions de produits, plusieurs catégories ou plusieurs descriptions de catégories, la requête renverra une ligne aléatoire pour chacun. Utilisez le MIN()
ou MAX()
fonctions pour récupérer des identifiants uniques, ou utilisez le GROUP_CONCAT()
fonction pour récupérer toute la description.
Exemple
SELECT
p.product_id AS pid,
p.model AS modelo,
SUBSTRING(p.model,1,25) AS substr_modelo,
p.image AS foto,
p.price AS preco,
GROUP_CONCAT(pd.name) AS nome,
GROUP_CONCAT(cd.name) AS category
FROM product p
LEFT JOIN product_description pd ON p.product_id = pd.product_id
LEFT JOIN product_to_category p2c ON p.product_id = p2c.product_id
LEFT JOIN category_description cd ON p2c.category_id = cd.category_id
WHERE pd.name LIKE _utf8 'laser%' collate utf8_unicode_ci
GROUP BY p.product_id
ORDER BY p.product_id DESC