SELECT sur liaison entre 3 tables
Posté : 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
Table VILLES
ID_ville
NOM_ville
Table de relations PROS - METIERS
ID_relation
ID_pro
ID_metier
Table de relations PROS - VILLES
ID_relation
ID_pro
ID_ville
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]
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
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 ;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 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]