Page 1 sur 1

Requête jointe

Posté : 15 août 2008, 17:26
par Pi33
Bonjour,

Comme vous pourrez vous en rendre compte, je suis débutant !

Je tente, en vain, de faire une requête sur trois tables.
CREATE TABLE `offers` (
  `offer_id` int(6) NOT NULL auto_increment,
  `sort` enum('Offre','Demande') NOT NULL default 'Offre',
  `member_id` int(6) NOT NULL default '0',
  `product_id` int(5) NOT NULL default '0',
  `CAS_Number` varchar(64) NOT NULL default '',
  `Botanical_Source` varchar(64) NOT NULL default '',
  `Empirical_formula` varchar(64) NOT NULL default '',
  `Molecular_weight` varchar(32) NOT NULL default '',
  `Appearance` varchar(64) NOT NULL default '',
  `Odour` varchar(64) NOT NULL default '',
  `Density` varchar(24) NOT NULL default '',
  `Refractive` varchar(24) NOT NULL default '',
  `Optical` varchar(54) NOT NULL default '',
  `Solubility` text NOT NULL,
  `Constituents` text NOT NULL,
  `qty` varchar(24) NOT NULL default '',
  `delivery` varchar(32) NOT NULL default '',
  `reg_date` int(10) NOT NULL default '0',
  `country` varchar(24) NOT NULL default '',
  `packing` varchar(32) NOT NULL default '',
  `payement` text NOT NULL,
  `target_price` varchar(24) NOT NULL default '',
  `name` varchar(128) NOT NULL default '',
  `origin` varchar(64) NOT NULL default '',
  `groupe` enum('1','2') NOT NULL default '1',
  PRIMARY KEY  (`offer_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ;

CREATE TABLE `demands` (
  `demand_id` int(6) NOT NULL auto_increment,
  `sort` enum('Offre','Demande') NOT NULL default 'Demande',
  `member_id` int(6) NOT NULL default '0',
  `product_id` int(5) NOT NULL default '0',
  `CAS_Number` varchar(64) NOT NULL default '',
  `Botanical_Source` varchar(64) NOT NULL default '',
  `Empirical_formula` varchar(64) NOT NULL default '',
  `Molecular_weight` varchar(32) NOT NULL default '',
  `Appearance` varchar(64) NOT NULL default '',
  `Odour` varchar(64) NOT NULL default '',
  `Density` varchar(24) NOT NULL default '',
  `Refractive` varchar(24) NOT NULL default '',
  `Optical` varchar(54) NOT NULL default '',
  `Solubility` text NOT NULL,
  `Constituents` text NOT NULL,
  `qty` varchar(24) NOT NULL default '',
  `delivery` varchar(32) NOT NULL default '',
  `reg_date` int(10) NOT NULL default '0',
  `country` varchar(24) NOT NULL default '',
  `packing` varchar(32) NOT NULL default '',
  `payement` text NOT NULL,
  `target_price` varchar(24) NOT NULL default '',
  `name` varchar(128) NOT NULL default '',
  `origin` varchar(64) NOT NULL default '',
  `groupe` enum('1','2') NOT NULL default '1',
  PRIMARY KEY  (`demand_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ;

CREATE TABLE `produits` (
  `product_id` int(6) NOT NULL auto_increment,
  `name` varchar(45) NOT NULL default '',
  `latin_name` varchar(64) NOT NULL default '',
  `fr1` text NOT NULL,
  `fr2` text NOT NULL,
  `fr3` text NOT NULL,
  `fr4` text NOT NULL,
  `en1` text NOT NULL,
  `en2` text NOT NULL,
  `en3` text NOT NULL,
  `en4` text NOT NULL,
  `groupe` enum('1','2') NOT NULL default '1',
  `photo` varchar(32) NOT NULL default '',
  `en_name` varchar(45) NOT NULL default '',
  PRIMARY KEY  (`product_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=159 ;
 

Code : Tout sélectionner

<?php $req = mysql_query("SELECT produits.name, produits.product_id, count(offers.offer_id), count(demands.demand_id) FROM produits,offers,demands WHERE produits.product_id=offers.product_id=demands.product_id GROUP BY produits.name ORDER BY produits.name ASC")or die(mysql_error());?>
J'arrive bien à obtenir le produit.name, mais les count(offers.offer_id)et count(demands.demand_id) sont faux.

Quelqu'un peut-il m'aider ?

Merci par avance.[/php]

Posté : 24 août 2008, 21:15
par sadeq

Code : Tout sélectionner

WHERE produits.product_id=offers.product_id AND offers.product_id=demands.product_id