Quel est le SQL pour trouver la liste des produits appartenant à plus de 3 catégories privées. p>
J'ai essayé ceci: p> merci! p> p>
4 Réponses :
Vous avez besoin de chaque sorcière de produit .... Vous devriez donc faire un groupe par productid.also, vous pouvez ajouter d'autres colonnes de produits dont vous avez besoin dans "Sélectionner" et "Groupe par"
Si vous ne renvoyez que le produit_id, vous pouvez supprimer la relation avec les produits et simplement retourner produit_categories.product_id
oui.mais vous pouvez ajouter d'autres colonnes de produit dans "Select" et "groupe par" si vous en avez besoin
Merci, ça marche, mais il y a une faute de frappe dans la dernière ligne. Pourriez-vous ajouter le manquant "(".
Pour obtenir toutes les colonnes de produits:
SELECT products.*
FROM products p
WHERE product_id in (SELECT pc.product_id
FROM product_categories pc
INNER JOIN categories c ON pc.category_id = c.category_id
WHERE c.is_private = 1
GROUP BY c.category_id
HAVING COUNT(c.category_id) > 3)
Vérifiez cela!
select * from products where product_id in (select pc.product_id from product_categories inner join categories c on pc.category_id=c.category_id where c.is_private=1 group by c.category_id having count(c.category_id)>3)
Votre requête serait correcte si vous êtes agrégé par Si vous voulez seulement les ID du produit, vous n'avez pas besoin du Produits.Product_id Code> - Eh bien, selon la base de données, vous devrez peut-être inclure d'autres colonnes dans le Sélectionnez code>. Mais il est valide SQL supposant que produit_id code> est unique dans cette table. Produits Code> Table: P > select pc.product_id
from product_categories pc join
categories c
on pc.category_id = c.category_id
where is_private = 1
group by pc.product_id
having count(*) > 3;
Qu'avez-vous essayé? Ceci est un groupe
assez basique par code> requête.J'ai essayé beaucoup de choses sans de bons résultats.