petit souci sur le rsultat d'une requête SELECT MySQL

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : petit souci sur le rsultat d'une requête SELECT MySQL

Re: petit souci sur le rsultat d'une requête SELECT MySQL

par two3d » 19 déc. 2023, 11:30

Essaye un DISTINCT SQL sur ut.s_mois ou t_mois, à voir.

petit souci sur le rsultat d'une requête SELECT MySQL

par emilie14 » 17 déc. 2023, 22:23

Bonjour tout le monde je demande votre aide à propos d'une requêtte select depuis plusiers tables(voir ci-dessous)

le problème c'est que la jointure des trois table me donne des resultat dupliqués

le resultat que je veux comme :

1111 | jean | lucas | CE1| Septembre |0.00|impayé|Septembre |0.00|impayé
1111 | jean | lucas | CE1| Octobre |0.00|impayé|Octobre |0.00|impayé
1111 | jean | lucas | CE1| novembre |0.00|impayé|novembre |0.00|impayé
1111 | jean | lucas | CE1| decembre |0.00|impayé|decembre |0.00|impayé
1111 | jean | lucas | CE1| janvier |0.00|impayé|janvier |0.00|impayé
1111 | jean | lucas | CE1| fevrier |0.00|impayé|fevrier |0.00|impayé
1111 | jean | lucas | CE1| mars |0.00|impayé|mars |0.00|impayé
1111 | jean | lucas | CE1| avril |0.00|impayé|avril |0.00|impayé
1111 | jean | lucas | CE1| mai |0.00|impayé|mai |0.00|impayé
1111 | jean | lucas | CE1| juin |0.00|impayé|juin |0.00|impayé


j'ai essayé une jointure à la normal mais hélas elle me sorte chaque ligne dupliquée 10 fois :cry: :cry: :cry:

Code : Tout sélectionner

SELECT mt.massar,mt.nom,mt.prenom,mt.classe, ut.s_mois,ut.s_montant,ut.s_statut, ct.t_mois,ct.t_montant,ct.t_statut FROM etudiant mt INNER JOIN tb_spaiement ut on mt.massar = ut.massar LEFT JOIN tb_tpaiement ct on mt.massar = ct.t_massar WHERE mt.massar = '1111'

Ma table Etudiant:

Code : Tout sélectionner

CREATE TABLE `etudiant` ( `id` int(11) NOT NULL, `massar` varchar(20) NOT NULL, `nom` varchar(30) NOT NULL, `prenom` varchar(30) NOT NULL, `classe` varchar(30) NOT NULL, `transport` varchar(30) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; -- -- Déchargement des données de la table `etudiant` -- INSERT INTO `etudiant` (`id`, `massar`, `nom`, `prenom`, `classe`, `transport`) VALUES (1, '1111', 'jean', 'lucas', 'CE1', 'oui');
Ma table tb_spaiement:

Code : Tout sélectionner

CREATE TABLE `tb_spaiement` ( `id` int(11) NOT NULL, `massar` varchar(20) DEFAULT NULL, `s_mois` varchar(20) DEFAULT NULL, `s_montant` decimal(8,2) NOT NULL, `s_statut` varchar(20) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; -- -- Déchargement des données de la table `tb_spaiement` -- INSERT INTO `tb_spaiement` (`id`, `massar`, `s_mois`, `s_montant`, `s_statut`) VALUES (1, '1111', 'Septembre', '0.00', 'Impayé'), (2, '1111', 'Octobre', '0.00', 'Impayé'), (3, '1111', 'Novembre', '0.00', 'Impayé'), (4, '1111', 'Décembre', '0.00', 'Impayé'), (5, '1111', 'Janvier', '0.00', 'Impayé'), (6, '1111', 'Février', '0.00', 'Impayé'), (7, '1111', 'Mars', '0.00', 'Impayé'), (8, '1111', 'Avril', '0.00', 'Impayé'), (9, '1111', 'Mai', '0.00', 'Impayé'), (10, '1111', 'Juin', '0.00', 'Impayé');
ma table tb_tpaiement :

Code : Tout sélectionner

CREATE TABLE `tb_tpaiement` ( `id` int(11) NOT NULL, `t_massar` varchar(20) NOT NULL, `t_mois` varchar(20) DEFAULT NULL, `t_montant` decimal(8,2) NOT NULL, `t_statut` varchar(20) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; -- -- Déchargement des données de la table `tb_tpaiement` -- INSERT INTO `tb_tpaiement` (`id`, `t_massar`, `t_mois`, `t_montant`, `t_statut`) VALUES (1, '1111', 'Septembre', '0.00', 'Impayé'), (2, '1111', 'Octobre', '0.00', 'Impayé'), (3, '1111', 'Novembre', '0.00', 'Impayé'), (4, '1111', 'Décembre', '0.00', 'Impayé'), (5, '1111', 'Janvier', '0.00', 'Impayé'), (6, '1111', 'Février', '0.00', 'Impayé'), (7, '1111', 'Mars', '0.00', 'Impayé'), (8, '1111', 'Avril', '0.00', 'Impayé'), (9, '1111', 'Mai', '0.00', 'Impayé'), (10, '1111', 'Juin', '0.00', 'Impayé');