Page 1 sur 1

Test sql ou php sur une non appartenance à une liste

Posté : 23 août 2007, 14:30
par saebakun
Bonjour,

voilà mon problème:

Code : Tout sélectionner

$sql = 'SELECT * FROM resultat, liste where liste.matricule=resultat.login order by liste.NOM'; $sql2 = 'SELECT * FROM liste order by liste.NOM';
En fait dans 'liste' j'ai tout mes utilisateurs et dans resultat j'ai ceux qui ont participé à un questionnaire.

Avec $sql je sors tout ceux qui ont répondu, mais maintenant j'aimerais faire l'inverse :/

Et là je bloque.... je fais des boucles dans tout les sens...

Merci

Posté : 23 août 2007, 14:47
par Ryle
Modération :
Afin d'obtenir plus de réponses, le sujet est déplacé dans le forum "SQL & Bases de données".

Posté : 23 août 2007, 15:33
par Vikchill
La solution la plus simple:

Code : Tout sélectionner

SELECT * FROM liste WHERE liste.matricule NOT IN (SELECT resultat.login FROM resultat, liste where liste.matricule=resultat.login) ORDER BY liste.NOM
C'est peut-être pas optimisé, mais commençons par le début :) La sous-requête te retourne les matricules des utilisateurs qui ont participé, tu vas simplement chercher ensuite les informations des utilisateurs qui ne sont pas dans cette liste.

Posté : 23 août 2007, 15:35
par saebakun
en fait j'ai trouvé mon bonheur là :D

http://www.phpfrance.com/forums/voir_su ... eption.php

ce qui donne ça :

Code : Tout sélectionner

$sql = 'SELECT * FROM liste LEFT JOIN resultat ON liste.matricule=resultat.login where resultat.login IS NULL order by liste.NOM';
merci pour ton aide sinon :)

Posté : 23 août 2007, 15:43
par Vikchill
Bé pas de quoi, l'important c'est que tu comprennes ce qui se fait et que tu saches le reproduire si tu en as de nouveau besoin! :)

Posté : 23 août 2007, 15:44
par saebakun
Oui exactement

merci encore

je passe en résolue :)