Page 1 sur 1

pb de jointure SQL

Posté : 02 févr. 2009, 12:16
par logone
Salut,

J'ai un soucis avec la jointure SQL d'une requete j'ai 2 tables demandeur et suivi

Sur la table demandeur id, ville

Code : Tout sélectionner

CREATE TABLE `demandeur` ( `id` int(11) NOT NULL auto_increment, `date_insert` datetime NOT NULL default '0000-00-00 00:00:00', `id_deposant` int(11) NOT NULL default '0', `cat_deposant` int(11) NOT NULL default '0', `date_inscription` datetime NOT NULL default '0000-00-00 00:00:00', `nouvel_inscrit` varchar(5) NOT NULL default '', `actualisation` varchar(5) NOT NULL default '', `suivi` varchar(5) NOT NULL default '', `referent` varchar(5) NOT NULL default '', `charge_accueil` varchar(5) NOT NULL default '', `date_suivi` date NOT NULL default '0000-00-00', `plie` varchar(15) NOT NULL default '', `date_plie` date NOT NULL default '0000-00-00', `provenance` int(3) NOT NULL default '0', `demande_initiale` varchar(25) default '0', `civilite` varchar(30) NOT NULL default '', `nom` varchar(255) NOT NULL default '', `nom_jf` varchar(255) NOT NULL default '', `prenom` varchar(255) NOT NULL default '', `adresse` varchar(255) NOT NULL default '', `ville` varchar(255) NOT NULL default '', `situation` varchar(100) NOT NULL default '', `enfant` varchar(10) NOT NULL default '', `commentaire` text NOT NULL, `tel` varchar(20) NOT NULL default '', `port` varchar(20) NOT NULL default '', `email` varchar(255) NOT NULL default '', `date_naissance` date NOT NULL default '0000-00-00', `age` char(3) NOT NULL default '', `nationalite` varchar(100) NOT NULL default '', `commentaire2` text NOT NULL, `diplomes` char(3) NOT NULL default '', `diplomes_obtenus` text NOT NULL, `scolarise_en_FR` char(3) NOT NULL default '', `langues` varchar(255) NOT NULL default '', `niveau` char(3) NOT NULL default '', `autorisation_travail` varchar(10) NOT NULL default '', `permisA` char(3) NOT NULL default '', `permisB` char(3) NOT NULL default '', `permisC` char(3) NOT NULL default '', `permisD` char(3) NOT NULL default '', `permisE` char(3) NOT NULL default '', `permisA_encours` char(3) NOT NULL default '', `permisB_encours` char(3) NOT NULL default '', `permisC_encours` char(3) NOT NULL default '', `permisD_encours` char(3) NOT NULL default '', `permisE_encours` char(3) NOT NULL default '', `licence_cariste` varchar(15) NOT NULL default '', `vehicule` char(3) NOT NULL default '', `autre_permis` varchar(255) NOT NULL default '', `anpe` varchar(255) NOT NULL default '', `date_inscription_anpe` date NOT NULL default '0000-00-00', `date_demandeur` date NOT NULL default '0000-00-00', `ressources` varchar(255) NOT NULL default '', `commentaire3` text NOT NULL, `date_debut_allocation` date NOT NULL default '0000-00-00', `date_fin_allocation` date NOT NULL default '0000-00-00', `cdaph` varchar(15) NOT NULL default '', `experience_pro1_cat` varchar(10) NOT NULL default '', `experience_pro1_sscat` varchar(10) NOT NULL default '', `experience_pro1_ssscat` varchar(10) NOT NULL default '', `duree_exp_pro1` char(3) NOT NULL default '', `experience_pro2_cat` varchar(10) NOT NULL default '', `experience_pro2_sscat` varchar(10) NOT NULL default '', `experience_pro2_ssscat` varchar(10) NOT NULL default '', `duree_exp_pro2` char(3) NOT NULL default '', `categorie` char(3) NOT NULL default '', `commentaire4` text NOT NULL, `emploi_recherche1` varchar(255) NOT NULL default '', `emploi_recherche2` varchar(255) NOT NULL default '', `secteur` varchar(50) default NULL, `commentaire5` text NOT NULL, `valide` char(3) NOT NULL default '', UNIQUE KEY `id` (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1971 ;
sur la table suivi id, id_dem, s1_date_debut, s1_date_fin, solution1

Code : Tout sélectionner

CREATE TABLE suivi ( id int(11) NOT NULL auto_increment, id_dem char(11) NOT NULL default '0', id_deposant int(11) NOT NULL default '0', cat_deposant int(11) NOT NULL default '0', `date` datetime NOT NULL default '0000-00-00 00:00:00', date_rdv date NOT NULL default '0000-00-00', observation text NOT NULL, solution1 char(50) NOT NULL, s1_date_debut date NOT NULL default '0000-00-00', s1_date_fin date NOT NULL default '0000-00-00', solution2 varchar(50) NOT NULL default '', s2_date_debut date NOT NULL default '0000-00-00', s2_date_fin date NOT NULL default '0000-00-00', commentaire text NOT NULL, date_sortie_dispositif date NOT NULL default '0000-00-00', nom_contact varchar(255) NOT NULL default '', tel_contact varchar(100) default NULL, nom_entreprise varchar(255) NOT NULL default '', lieu varchar(255) NOT NULL default '', poste varchar(255) NOT NULL default '', duree varchar(100) default NULL, commentaire2 text NOT NULL, ecart varchar(100) NOT NULL default '', environnement varchar(100) NOT NULL default '', sante varchar(100) NOT NULL default '', rqth char(3) NOT NULL default '', comm1 text NOT NULL, ecart_competence char(3) NOT NULL default '', comm2 text NOT NULL, savoir_etre char(3) NOT NULL default '', comm3 text NOT NULL, salaire_mini char(3) NOT NULL default '', comm4 text NOT NULL, valide char(3) NOT NULL default '', UNIQUE KEY id (id) ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
J'ai ma requete qui donne ceci

Code : Tout sélectionner

SELECT suivi.id, suivi.id_dem from suivi, demandeur where demandeur.id=suivi.id_dem and (DATE_FORMAT(suivi.s1_date_debut,'%Y') = 2008 || DATE_FORMAT(suivi.s1_date_fin,'%Y') = 2008) and demandeur.ville like 'Verneuil%' and suivi.solution1='13' and suivi.valide='Y' group by suivi.id
J'ai 2 resultats dans cette base qui devraient ressortir et poutant un seul ne ressort. Ca fait des jours que je cherche d'ou viens le pb et je ne trouve pas.

Merci pour votre aide. [/code]

Posté : 02 févr. 2009, 12:26
par mere-teresa
Primo : as tu des index sur tes tables ? des clefs primaires ?

Posté : 02 févr. 2009, 12:52
par logone
Salut,

Clé primaire oui sur les id des 2 tables, mais pas d'index.

Sur la table suivi

Nom de l'index Type Cardinalité Champ
id UNIQUE 4753 id

et la table demandeur

Nom de l'index Type Cardinalité Champ
id UNIQUE 1971 id