Aide sur une requête SQL

obelix95
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 1
Inscription: 19 Déc 2009

Aide sur une requête SQL

Message le Sam Déc 19, 2009 21:47

Bonjour à tous,
Si qq'un pouvait me donner un petit coup de main, ce serait super.
J'ai 3 tables qui gèrent des catégories et des produits. Les catégories sont hiérarchisées, parent, enfant, petit enfant, etc...
Un produit appartient à une ou plusieurs catégories.
Elles sont organisées comme suit :

Code: Tout sélectionner
CREATE TABLE IF NOT EXISTS `category` (
  `category_id` int(11) NOT NULL auto_increment,
  `category_name` varchar(128) NOT NULL default '',
  PRIMARY KEY  (`category_id`),
  KEY `idx_category_name` (`category_name`)
) TYPE=MyISAM  COMMENT='Product Categories are stored here';

CREATE TABLE IF NOT EXISTS `category_xref` (
  `category_parent_id` int(11) NOT NULL default '0',
  `category_child_id` int(11) NOT NULL default '0',
  `category_list` int(11) default NULL,
  PRIMARY KEY  (`category_child_id`),
  KEY `category_xref_category_parent_id` (`category_parent_id`),
  KEY `idx_category_xref_category_list` (`category_list`)
) TYPE=MyISAM COMMENT='Category child-parent relation list';

CREATE TABLE IF NOT EXISTS `product` (
  `product_id` int(11) NOT NULL auto_increment,
  `product_sku` varchar(64) NOT NULL default '',
  PRIMARY KEY  (`product_id`),
  KEY `idx_product_sku` (`product_sku`),
) TYPE=MyISAM  COMMENT='All products are stored here.' ;


Je les ai simplifiées, le reste n'est pas utile.

J'ai une requête qui me sort tous les produits (sku) d'une catégorie choisie :

Code: Tout sélectionner
SELECT DISTINCT product_sku FROM product, product_category_xref, category WHERE
  product.product_id = product_category_xref.product_id
  AND category.category_id = product_category_xref.category_id
  AND category.category_id = $ma_categorie
  ORDER BY RAND()


Jusque là tout va bien.
Maintenant, j'aimerais avoir une requête qui me sort un seul produit (random) pour chaque catégorie.
Bon, si un produit qui appartient à plusieurs catégories sort plusieurs fois, c'est pas grave.
J'essaie de creuser un peu les JOIN ou les IN, mais là je nage. Je ne suis pas sûr que c'est la bonne voie.

Merci d'avance pour toute idée ! :)
Philippe


screuscreu
WRInaute impliqué
WRInaute impliqué
 
Messages: 968
Inscription: 14 Jan 2008

Re: Aide sur une requête SQL

Message le Lun Déc 21, 2009 11:07

et un group by category.category_id ?


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités