Requete probablement simple...

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Requete probablement simple...

par seayoung » 04 mai 2005, 11:12

Doria ca marche ta requette merci millle fois .
Toutefois il subsiste un probleme qui doit etre dû au config serveur :

-Sur un serveur Apache, top ca marche nikel si je fais un GROUP BY uniquement sur le nom prenom il m 'en choisi un au hasard je pense (avec ou sans le MAX), en gros il fait ce que je veux c'est de la bombe :lol:

-Mais ma requete doit s'executer sur un serveur microchiotte oups microsoft et là, si les champs ne sont pas rigoureusement les memes c'est à dire :
lorsqu'on fait un SELECT et un GROUP BY je dois avoir la meme chose.
Exemple:

Code : Tout sélectionner

SELECT nom,prenom FROM table GROUP BY nom,prenom
là ça marche nikel mais si dans le SELECT je rajoute un paramettre comme mail, si le nom et prenom sont les mêmes et que le mail diffère le serveur ne peut pas faire un choix entre les deux et donc me marque une erreur (celà dit c'est bien comme chose sauf que moi ce que je veux c'est afficher tout sauf les doublons pour les noms et prénoms le mail et autre ne sont la qu'a titre consultatif :? )

alors bon je pense que ce probleme vient du serveur plus que de la requete si toutefois une idée vous venez ... N'hesitez pas .
En tout cas Un grand merci a Doria qui m'a bien dépanner pour le coup et une requete que je suis pas pres d'oublier :wink:

par seayoung » 04 mai 2005, 10:06

merci doria ...
tu es super je pense que c'est ca je teste et je te confirme merci beaucoup.
j'avais zaper les propriétés de GROUP BY .
Un grand merci

par Doria » 03 mai 2005, 17:40

Alors je voulais d'abord te poser une question : sur quoi se base le choix de l'enregistrement qui sera affiché?
Je veux dire, pourquoi ne pas avoir affiché celui là :

| a | a | [email protected] | 032556|

Si c'est une question d'id, alors je suppose que tu prends le dernier id comme référence et ça te donnera ça :

Code : Tout sélectionner

SELECT nom,prenom,mail,max( id ) FROM table GROUP BY nom,prenom

par seayoung » 03 mai 2005, 16:46

excusez moi :oops:
je vais essayer d etre plus explicite:
voici un exmple:
+---+---+------------+----------+
| a | a | [email protected] | 032556|
| a | a | [email protected] | 2122333|
| b | c | [email protected] | 2546464|
| b |a | [email protected]|13213131|
+---+---+------------+----------+

ce que je voudrai que ca affiche :

+---+---+------------+----------+
| a | a | [email protected] | 2122333|
| b | c | [email protected] | 2546464|
| b |a | [email protected]|13213131|
+---+---+------------+----------+

en espérant que c'est un peu plus clair
merci encore de vous prendre la tete avec moi sur ce sujet .

par Doria » 03 mai 2005, 16:28

Tu pourrais pas mettre un exemple plus explicite de ce qu'il doit se passer et pas se passer parce que là j'ai un peu de mal à comprendre.

Si tu veux que par exemple quand tu as :

a a
a b
a a
b c

dans ta table, il n'affiche que :

a a
a b
b c

ben fais juste un group by :

Code : Tout sélectionner

SELECT * FROM `personne` GROUP BY nom, prenom
mais si tu veux qu'il t'affiche que les noms et prenoms distincts pour une même personne (donc que son nom et son prénom sont différents) tu dois faire un test :

Code : Tout sélectionner

SELECT * FROM `personne` WHERE nom != prenom
Note que tu peux aussi coupler les deux !

par seayoung » 03 mai 2005, 14:39

au fait je voudrai faire une requete du type :

Code : Tout sélectionner

SELECT * FROM table WHERE EXISTS (SELECT DISTINCT nom,prenom FROM table);
mais seulement ca marche pas.
En gros je voudrai évite les doublons sur les noms et prenoms mais pouvoir aficher aussi les autres champs associer :? c le desespour complet la si une ame charitable a une idée ...
Merci d avance

par seayoung » 03 mai 2005, 12:17

merci Pjl
mais ce que je cherche a faire c'est eviter les doudlon donc eviter que un nom et un prénom (meme si ils sont les memes) soient présent qu une fois dans ma celection mais que tous les champs soit présent.
est il possible de faire :
SELECT * DISTINCT nom,prenom FROM table;

par pjl » 03 mai 2005, 12:11

Pour récupérer les données seulement si le nom est différent du prénom, il faut mettre une condition à la requête.
Condition dans une requete : http://www.phpdebutant.org/article117.php
Une initiation au langage SQL : http://chypre.ima.uco.fr/~cgi-ima/sql.html

par seayoung » 03 mai 2005, 12:08

oui j ai pas mis la virgule mais elle y est tout comme le ;
merci mais ca vient pas de ça :?

par Cyrano » 03 mai 2005, 12:05

SELECT DISTINCT nom, prenom FROM table

Requete probablement simple...

par seayoung » 03 mai 2005, 11:48

Bonjour,
Voila mon problème :
j'ai une table avec disons 6champs avec nom, prenom, mail, tel etc..
je voudrais selectionner uniquement les champs ou le nom et le prénom sont pas les memes.
exemple:
titi toto ....
titi toto ....
tutu tata ...
lionel grange ...

ma requete doit m'aficher :
titi toto ...
tutu tata ...
lionel grange ...

alors j ai essayer une requete du genre
SELECT DISTINCT nom prenom FROM table

avez vous une idée siouplé
merci d'avance en espérant avoir ete sufisemment clair