Bonjour à tous,
Cette question a peut-être déjà été posée mais ce n'est pas facile à rechercher. Alors si la réponse existe déjà, je m'excuse par avance pour ce doublon.
Je requière votre aide pour une requête simple mais que j'aimerai traiter de sans passer par sous-requête ou autre.
En fait, dans une table que je nommerai tableA, j'aimerai récupérer les enregistrements qui, pour une même clé étrangère "id_tableB" (par ex),ont tous la même valeur dans un champ "champ1".
J'ai tenté un truc comme ca:
Cela me ramène les enregistrements voulus mais également des lignes de ce style:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 SELECT t1.id_tableA, t1.id_tableB, t1.champ1 FROM tableA t1,tableA t2 WHERE t1.id_tableA <> t2.id_tableA AND t1.id_tableB = t2.id_tableB AND t1.champ1 = t2.champ1 GROUP BY t1.id_tableA,t1.id_tableB,t1.champ1;
Comment faire pour éliminer ces enregistrements? Encore une fois, j'aimerais ne pas faire de sous-requetes mais juste une requete simple. Je pense que c'est possible. C'est un exercice assez scolaire mais je n'arrive pas à mettre le doigt sur la bonne solution.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 t1.id_tableB | t1.champ1 | t1.id_tableA 134520 | value1 | 134521 134520 | value1 | 134522 134520 | value2 | 134523 134520 | value2 | 134524
En vous remerciant par avance.
P.S: A priori c'est du SQL de base mais pour info, mon SGBD est un oracle 10.
P.P.S: Ceci est mon 1er post sur le site. Donc si j'ai commis des erreurs, merci de bien vouloir m'accorder votre clémence
Partager