DISTINCT... et requête "inverse" ??

Southstyle Messages postés 46 Date d'inscription   Statut Membre Dernière intervention   -  
luckydu43 Messages postés 4251 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je dois générer une liste dans moins de deux heures. Cependant avant de la vérifier, j'aimerais savoir si un même utilisateur possède deux états de commande différent.
En général un utilisateur paie sa commande et basta. Mais rarement, il arrive qu'il la paie puis repasse commande par la suite. Il a alors deux commandes dans deux états (trackers) différents. Exemples :

user_ID / commande_TRACKER
20145 / suspended
20146 / paid
20146 / suspended
20147 / paid
20148 / paid
20149 / suspended


Quelle requête SQL dois-je faire pour trouver tous les user_ID semblables à 20146, c'est à dire avec des commande_TRACKER dans des états différents ?

Merci pour votre précieuse aide !

2 réponses

luckydu43 Messages postés 4251 Date d'inscription   Statut Membre Dernière intervention   1 054
 
Bonjour !

J'aurais essayé quelque chose du genre ça :

SELECT user_ID
FROM (SELECT count(user_ID) as nb, user_ID FROM TABLE) temp
where temp.nb > 1;


Bonne journée

Luc

Les 3 plus grands mensonges du dev ? La doc sera faite plus tard... Le programme n'a aucun bug... Les spécifs sont finies...
Un peuple sacrifiant sa liberté pour plus de sécurité perd les deux.
0
Southstyle Messages postés 46 Date d'inscription   Statut Membre Dernière intervention  
 
Merci pour ta réponse @luckydu43.
J'ai provisoirement fait comme cela, à savoir une recherche dans une table liée à une autre recherche :

SELECT * FROM commandes c, students s WHERE s.student_id = c.commande_student_id AND c.commande_track NOT LIKE 'paid' AND c.commande_student_id IN (SELECT commande_student_id FROM `commandes` WHERE commande_track = 'paid') GROUP BY c.commande_student_id


C'est pas très esthétique, non ? :-)
0
luckydu43 Messages postés 4251 Date d'inscription   Statut Membre Dernière intervention   1 054
 
Je ne trouve pas. La requête répond à un cas particulier, à savoir la possibilité à un client d'effectuer plusieurs commandes
Si tu voyais les requêtes qu'on fait au taf pour respecter l'ensemble des règles fonctionnelles... tu trouverais celle-ci littéralement digne d'un cas d'école :-D

S'il fallait revoir le schéma de BDD, j'aurais proposé :
STUDENT (id, nom, prenom, âge du chien, numéro de carte bancaire)
COMMANDE (id, date, adresse, id_client, commande_tracker)
ARTICLE (id, taille, libelle, categorie (qu'on peut mettre dans une table si on veut faire du propre)
JOIN_COMMANDE_ARTICLE (id_commande, id_article)

EDIT : j'ai édité
0