Page 1 sur 1

Problème SQL Doublons

Posté : 18 oct. 2015, 15:14
par LambertTMC
Bonjour,

J'ai besoin de statistiques pour un formulaire que j'envoi à un groupe de client.
J'ai en fait une table 'customer' qui regroupe toutes les infos des clients, et une table 'submissions' qui regroupe les réponses quand les clients ont répondu.
J'ai fait une requête qui me permet de récupérer les id des personnes qui ont répondu au formulaire, puis il les compare avec les id des clients dans la table 'customer'. Je veux en fait récupérer les adresses mail de personnes qui n'ont pas répondu.

Voici mon code :

Code : Tout sélectionner

SELECT * FROM `customer` AS a INNER JOIN `submission` AS b ON b.`id_customer` != a.`id_customer` WHERE b.`id_formulaire` = 2
Pour l'exemple j'ai juste mis un id fixe, mais ça change en fonction des formulaires.
Mon soucis, c'est en fait que la requête me renvoi les personnes qui ont répondu au formulaire et les personnes qui n'ont pas répondu en double. Je voudrais uniquement les personnes qui n'ont pas répondu, et en une seule fois :mrgreen:

Quelqu'un à une idée ?

Merci par avance !

Lambert

Re: Problème SQL Doublons

Posté : 18 oct. 2015, 16:30
par soft1ne
salut,

Tu peux faire un LEFT JOIN à la place d'un INNER JOIN, et tu fais un where EmailAddress IS NULL

C'est tout :)

Re: Problème SQL Doublons

Posté : 18 oct. 2015, 18:04
par LambertTMC
Salut soft1ne,

Merci d'avoir pris le temps de me répondre, je comprends pas trop ce que tu me dis de faire, il n'y a pas de colonne EmailAdress dans la table 'submission' et si je lui dis de me renvoyer les EmailAdress IS NULL de la table 'customer', il ne me renvoi rien car ils ont tous une adresse mail.

Re: Problème SQL Doublons

Posté : 18 oct. 2015, 18:15
par or 1
b.`id_customer` is null
ou si cela ne marche pas a.`id_customer` is null

Re: Problème SQL Doublons

Posté : 18 oct. 2015, 18:42
par LambertTMC
Je vais un peu détaillé les tables ça sera plus claire :
Table 'customer' :
Colonne : id_customer | email | name | ...
Ligne1 : 1 | [email protected] | nom1 | ...
Ligne2 : 2 | [email protected] | nom2 | ...
Ligne3 : 3 | [email protected] | nom3 | ...

Table 'submission'
Colonne : id_customer | id_formulaire | reponse_1 | ...
Ligne1 : 1 | 1 | rep_client1_form1... | ...
Ligne2 : 2 | 1 | rep_client2_form1... | ...
Ligne3 : 1 | 2 | rep_client1_form2... | ...

Dans cette exemple il faudrait que pour le formulaire portant l'id 1 il me renvoi l'adresse du client 3, et pour le formulaire portant l'id 2 qu'il me renvoi les adresses mail des client 2 et 3.

or1, je ne comprends as où tu veux que j'essaie ça.

Merci,

Re: Problème SQL Doublons

Posté : 19 oct. 2015, 11:27
par LambertTMC
Problème résolu, voici la requête qui fonctionne :

Code : Tout sélectionner

SELECT `email` FROM customer WHERE `id_customer` NOT IN (SELECT c.`id_customer` FROM customer AS c NATURAL JOIN submission AS s WHERE s.`id_formulaire` = 2)
Je passe le sujet en résolu !