Page 1 sur 1

Conception d'une requête

Posté : 18 mars 2008, 15:56
par albius
Bonjour,

J'ai un souci dans l'écriture d'une requête. J'ai d'abord un menu dans un formulaire qui propose une liste de secteurs d'activité:

Code : Tout sélectionner

<select name="secteurs" id="secteurs">
Les informations qui y s'affichent proviennent de la table 'secteuractiviteentreprises'
Structure de cette table :
CREATE TABLE `secteuractiviteentreprises` (
  `IdSectEnt` int(11) NOT NULL auto_increment,
  `SecteurActivite` varchar(30) NOT NULL default '',
  `ident` int(5) NOT NULL default '0',
  PRIMARY KEY  (`IdSectEnt`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=258 ;

-- Contenu de la table `secteuractiviteentreprises`

INSERT INTO `secteuractiviteentreprises` (`IdSectEnt`, `SecteurActivite`, `ident`) VALUES
(1, 'Restauration', 141),
(2, 'Commerce', 9),
(3, 'Alimentaire', 11),
(4, 'Administration', 10),
(5, 'Grande distribution', 8),
(6, 'Alimentaire', 8),
(7, 'Administration', 4),
(8, 'Grande distribution', 4),
(9, 'Grande distribution', 6),
(10, 'Commerce', 5),
etc...
Précisions concernant cette table, chaque 'ident' correspond à une entreprise, appartenant à un ou plusieurs secteurs d'activité.

la seconde table décrit précisément chaque entreprise:
CREATE TABLE `entreprises` (
  `RaisonSociale` varchar(50) default NULL,
  `...
  `AdresseEnt` varchar(50) default NULL,
  `CodePostalEnt` int(5) default NULL,
  `VilleEnt` varchar(30) default NULL,
  `Bassin` varchar(30) default NULL,
  `...
  `ident` int(5) NOT NULL auto_increment, > id de l'entreprise
  `DateAcceptation` varchar(10) NOT NULL default '',
  KEY `ident` (`ident`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=267 ;
La requête qui découle du choix de l'utilisateur doit afficher un certains nombre d'informations provenant de cette table en fonction donc du secteur d'activité choisi. J'ai commencé par faire une première partie de la requête destiné à sélectionner le secteur d'activité:
$select= 'SELECT * FROM secteuractiviteentreprises,  entreprises WHERE SecteurActivite =\''.$secteurs.'\';';
Mais comment faire pour correspondre les ident entre les deux tables sachant que je dois me servir obligatoirement du secteur d'activité. En faisant peut-être une imbrication de requête ?
merci,[/php]

Posté : 18 mars 2008, 18:54
par Patriboom
Tu peux aller du côté de

Code : Tout sélectionner

SELECT ... FROM table1 LEFT JOIN NomTable1 AS table2 ON table2.ident = table1.ident WHERE ...

re:

Posté : 19 mars 2008, 10:31
par albius
Merci Patriboom!!

Posté : 19 mars 2008, 12:54
par iclo
Assez étrange la structure de ta table, ça risque de te poser des problèmes par la suite, fais attention