par
Peyothe » 13 mai 2009, 23:08
Bonjour,
Je développe un moteur de recherche sur mon projet en cours et je bloque à nouveau sur une requete SELECT lors de l'affichage.
Je cherche à afficher une liste de professionnels (table PROS) qui sont sélectionnes par rapport à leurs métiers (table METIERS) et leurs villes (table VILLES).
Mes tables sont construites comme cela :
Table METIERS
ID_metier
NOM_metier
Code : Tout sélectionner
CREATE TABLE `METIERS` (
`ID_metier` int(10) unsigned NOT NULL auto_increment,
`NOM_metier` varchar(255) collate utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id_metier`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;
Table VILLES
ID_ville
NOM_ville
Code : Tout sélectionner
CREATE TABLE `villes` (
`ID_ville` int(10) unsigned NOT NULL auto_increment,
`NOM_ville` varchar(255) collate utf8_unicode_ci NOT NULL,
PRIMARY KEY (`ID_ville`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1
Table de relations PROS - METIERS
ID_relation
ID_pro
ID_metier
Code : Tout sélectionner
CREATE TABLE `rel_pros_metiers` (
`id_pro_metier` int(10) unsigned NOT NULL auto_increment,
`id_pro` int(10) unsigned NOT NULL,
`id_metier` int(10) unsigned NOT NULL,
PRIMARY KEY (`id_pro_metier`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;
Table de relations PROS - VILLES
ID_relation
ID_pro
ID_ville
Code : Tout sélectionner
CREATE TABLE `rel_pros_villes` (
`id_pro_ville` int(10) unsigned NOT NULL auto_increment,
`id_pro` int(10) unsigned NOT NULL,
`id_ville` int(10) unsigned NOT NULL,
PRIMARY KEY (`id_pro_ville`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;
Je souhaiterai mettre en place un SELECT qui pourrai, par exemple, extraire tous mes professionnels dans les villes 1 et 3 et qui font les metiers 2 et 4.
Je m'embrouille un peu au niveau des jointures et de la méthode pour une telle requette.
En espérant avoir été le plus clair possible.
Merci par avance de me mettre sur la piste.
Je travail avec MySQL 5.0.51b[/b]
Bonjour,
Je développe un moteur de recherche sur mon projet en cours et je bloque à nouveau sur une requete SELECT lors de l'affichage.
Je cherche à afficher une liste de professionnels (table PROS) qui sont sélectionnes par rapport à leurs métiers (table METIERS) et leurs villes (table VILLES).
Mes tables sont construites comme cela :
[b]Table METIERS[/b]
ID_metier
NOM_metier
[code]CREATE TABLE `METIERS` (
`ID_metier` int(10) unsigned NOT NULL auto_increment,
`NOM_metier` varchar(255) collate utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id_metier`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;[/code]
[b]Table VILLES[/b]
ID_ville
NOM_ville
[code]CREATE TABLE `villes` (
`ID_ville` int(10) unsigned NOT NULL auto_increment,
`NOM_ville` varchar(255) collate utf8_unicode_ci NOT NULL,
PRIMARY KEY (`ID_ville`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1
[/code]
[b]Table de relations PROS - METIERS[/b]
ID_relation
ID_pro
ID_metier
[code]CREATE TABLE `rel_pros_metiers` (
`id_pro_metier` int(10) unsigned NOT NULL auto_increment,
`id_pro` int(10) unsigned NOT NULL,
`id_metier` int(10) unsigned NOT NULL,
PRIMARY KEY (`id_pro_metier`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;[/code]
[b]Table de relations PROS - VILLES[/b]
ID_relation
ID_pro
ID_ville
[code]CREATE TABLE `rel_pros_villes` (
`id_pro_ville` int(10) unsigned NOT NULL auto_increment,
`id_pro` int(10) unsigned NOT NULL,
`id_ville` int(10) unsigned NOT NULL,
PRIMARY KEY (`id_pro_ville`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;[/code]
Je souhaiterai mettre en place un SELECT qui pourrai, par exemple, extraire tous mes professionnels dans les villes 1 et 3 et qui font les metiers 2 et 4.
Je m'embrouille un peu au niveau des jointures et de la méthode pour une telle requette.
En espérant avoir été le plus clair possible.
Merci par avance de me mettre sur la piste.
Je travail avec MySQL 5.0.51b[/b]