Petits soucis avec sql

Leouargli Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
Voici mon problème :
J’ai une base mysql qui se nomme « meillant » composée de trois tables « deces, mariages, naissances ».
Tout d’abord, je veux connaitre le nombre de mariage.
SELECT count(*) FROM `mariages`  

Le résultat est 2724, c’est le nombre d’acte, sachant qu’il y a une ligne par acte dans cette table.

Dans la table mariages, je veux connaitre le nombre de patronymes différents des époux et des épouses.
Pour les époux, je passe la commande suivante :
 SELECT count(distinct `Nom_epoux`) FROM `mariages`      

Le résultat est 620 patronymes différents, OK

SELECT count(distinct `Nom_epouse`) FROM `mariages`   

Le résultat est 588 patronymes différents, OK

La somme des deux résultats est 1208, sachant qu’il y a des patronymes identiques chez les hommes et les femmes
Maintenant je veux connaitre les patronymes différents époux et épouses .
SELECT count(distinct `Nom_epoux`,`Nom_epouse` ) FROM `mariages`  

La le résultat est 1344, je ne comprends pas, dans tous les cas, il ne devrait pas être supérieur à 1208.

Mon select est certainement pas terrible, mais je ne vois pas comment faire.
Si quelqu’un pouvait me donner la solution, j’en serai ravi.
Merci d’avance

Message modifié
par la modération

--->
Pour une lecture plus facile du code, vous devez utiliser
les balises de code (en y précisant le langage)

1 réponse

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

N'aurais tu pas plusieurs fois les mêmes couples enregistrés plusieurs fois ?

Peux tu ajouter un group by sur tes requêtes et voir si tu as des valeurs supérieur à 1 ?
SELECT Nom_epoux, count(`Nom_epoux`) 
FROM `mariages`
GROUP BY Nom_epoux


SELECT Nom_epouse, count(`Nom_epouse`) 
FROM `mariages`
GROUP BY Nom_epouse


SELECT CONCAT(`Nom_epoux`, ' - ', `Nom_epouse`) As COUPLE
               ,count(* ) 
FROM `mariages`
GROUP BY CONCAT(`Nom_epoux`, ' - ', `Nom_epouse`)


0