IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Procédural MySQL Discussion :

Opérateur comparaison >=ANY : incompatible MySQL (5.5.44) [MySQL-5.5]


Sujet :

SQL Procédural MySQL

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ebeniste
    Inscrit en
    Décembre 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ebeniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2013
    Messages : 30
    Points : 33
    Points
    33
    Par défaut Opérateur comparaison >=ANY : incompatible MySQL (5.5.44)
    Bonjour,

    J'ai un problème sur l'opérateur de comparaison ANY suite à cette requête :
    ***********************************************************
    SELECT
    date_format(ch_start_stay_date,'%m-%d-%Y') AS BeginPeriod,
    date_format((SELECT ch_end_stay_date FROM stay_nfo WHERE ch_end_stay_date >= ALL (SELECT ch_end_stay_date FROM stay_nfo)),'%m-%d-%Y') AS EndPeriod,
    idstays_nfo AS number_contract,
    post_id AS number_customer
    FROM
    `stay_nfo`
    WHERE ch_start_stay_date>=NOW()
    ORDER BY `stay_nfo`.`ch_start_stay_date` ASC;
    ***********************************************************

    pour être plus précis, c'est sur la ligne :
    date_format((SELECT ch_end_stay_date FROM stay_nfo WHERE ch_end_stay_date >= ALL (SELECT ch_end_stay_date FROM stay_nfo)),'%m-%d-%Y') AS EndPeriod,

    Cette requête fonctionnait très bien, mais depuis que mon hébergeur HAISOFT a fait une mise à jour, cette ligne plante le chargement de la page PHP en indiquant :
    "#1242 - Subquery returns more than 1 row"
    Un technicien d'HAISOFT m'a fait cette réponse un peu laconique :
    "il pourrait s'agir d'une incompatibilité avec les versions de PHP (5.4.45) ou MySQL (5.5.44) installées sur le serveur."

    Ce qui est étonnant c'est que si j'extrais cette ligne de cette requête pour l'exécuter seule cela fonctionne
    **********************************
    SELECT
    date_format(ch_end_stay_date,'%m-%d-%Y') AS EndPeriod
    FROM stay_nfo
    WHERE ch_end_stay_date >= ALL (SELECT ch_end_stay_date FROM stay_nfo);
    *********************************
    Là ça fonctionne chez mon hébergeur.

    Bref, étant un petit noob en MYSQL j'aimerais bien que l'on m'explique une autre façon d'écrire cette ligne de requête.
    Cette ligne me permet d'extraite la date la plus grande du champ 'ch_end_date'.

    Aussi si quelqu'un est au courant de ce "problème d’incompatibilité" je veux bien un peu de détail


    Merci d'avance

  2. #2
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 380
    Points : 19 062
    Points
    19 062
    Par défaut
    Salut danamaro.

    Plus personne n'utilise ces opérateurs 'any' ou 'all' depuis fort longtemps !
    Et en général, cela s'utilise plutôt dans la clause where et non comme tu le fais.

    Il n'y a pas de problèmes de compatibilité, mais juste un mauvais usage de ces opérateurs.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT ch_end_stay_date FROM stay_nfo WHERE ch_end_stay_date >= ALL (SELECT ch_end_stay_date FROM stay_nfo)
    En procédant ainsi, tu recherches la plus grande date 'ch_end_stay_date'. Pour ce faire, il existe une fonction qui est 'max'.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    date_format(max(ch_end_stay_date),'%m-%d-%Y') AS EndPeriod,
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 766
    Points : 52 561
    Points
    52 561
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par Artemus24 Voir le message
    Salut danamaro.

    Plus personne n'utilise ces opérateurs 'any' ou 'all' depuis fort longtemps !
    Vous affirmez encore une fois n'importe quoi. Même s'ils ne sont pas très populaire, car rarement enseignés les opérateurs ALL ANY/SOME restent très intéressant dans de nombreux cas de figure. C'est par exemple un moye de faire une division relationnelle (avec ALL).

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  4. #4
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 380
    Points : 19 062
    Points
    19 062
    Par défaut
    Salut SQLPRO.

    Monsieur je sais tout est de retour.
    Vous êtes là pour troller ou pour répondre à la question posé par danamaro ?
    Parce que vos continuelles interventions commence à me fatiguer. Toujours de la critique et rien de constructif.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Ebeniste
    Inscrit en
    Décembre 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ebeniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2013
    Messages : 30
    Points : 33
    Points
    33
    Par défaut Remerciements
    Bonjour,
    Je vous remercie d'avoir répondu à ma question
    Merci à Artemus24 de m'avoir proposé un code en remplacement.
    Concernant la remarque de SQLPRO, en me formant sur SQL j'avais trouvé cet opérateur très pratique (mais pas vraiment bien utilisé dans mon code, normal je débute)

    Quoi qu'il en soit, étant un débutant et un peu en dehors de ce genre de débat qui me dépasse largement il y a un facteur important.
    MA REQUÊTE NE FONCTIONNE PLUS AVEC L'OPERATEUR ANY depuis la mise à jour de mon hébergeur HAISOFT.
    Ce qui fait plutôt pencher la balance d'un opérateur qui devient obsolète.

    Merci encore une fois pour le dépannage..

  6. #6
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    Par défaut
    Citation Envoyé par danamaro Voir le message
    Quoi qu'il en soit, étant un débutant et un peu en dehors de ce genre de débat qui me dépasse largement il y a un facteur important.
    MA REQUÊTE NE FONCTIONNE PLUS AVEC L'OPERATEUR ANY depuis la mise à jour de mon hébergeur HAISOFT.
    Ce qui fait plutôt pencher la balance d'un opérateur qui devient obsolète.
    Franchement je ne pense pas.

    Exécuter cette requête et dites nous combien de ligne elle renvoie :
    Citation Envoyé par danamaro Voir le message
    Ce qui est étonnant c'est que si j'extrais cette ligne de cette requête pour l'exécuter seule cela fonctionne
    **********************************
    SELECT
    date_format(ch_end_stay_date,'%m-%d-%Y') AS EndPeriod
    FROM stay_nfo
    WHERE ch_end_stay_date >= ALL (SELECT ch_end_stay_date FROM stay_nfo);
    *********************************
    Là ça fonctionne chez mon hébergeur.
    A priori plus d'une

  7. #7
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 380
    Points : 19 062
    Points
    19 062
    Par défaut
    Salut à tous.

    Citation Envoyé par danamaro
    Ce qui fait plutôt pencher la balance d'un opérateur qui devient obsolète.
    Si vous pensez que ces opérateurs ne fonctionnent plus dans votre version MySql, je pense que vous faites erreur.
    Ces opérateurs fonctionnent très bien mais sont devenus désuet, c'est-à-dire "Qui a cessé d’être en usage", d'où ma remarque.

    Avez-vous un quelconque message d'erreur à nous signaler ?
    Mettez votre fichier "mysql error log" à zéro et ensuite exécutez votre requête.

    Peut-être un problème de volumétrie dans la création des tables temporaires en interne à MySql.
    Dites moi ce que vous avez pour ces deux variables :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    tmp-table-size
    max-heap-table-size
    Par défaut, la valeur est à 16M. Mettez la même valeur pour ces deux variables, en les augmentant à "32M" ou à "64M".

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Ebeniste
    Inscrit en
    Décembre 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ebeniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2013
    Messages : 30
    Points : 33
    Points
    33
    Par défaut
    Voici le message d'erreur généré sur mon site distant (donc hébergé chez Haisoft) : "Subquery returns more than 1 row"

    En revanche en local, aucun message d'erreur.

    Petit inconvenient sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    date_format(max(ch_end_stay_date),'%m-%d-%Y') AS TEST
    Si je conserve ma requete d'origine avec ALL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT
        date_format(ch_start_stay_date,'%m-%d-%Y') AS BeginPeriod,
        date_format((SELECT ch_end_stay_date FROM stay_nfo WHERE ch_end_stay_date >= ALL (SELECT ch_end_stay_date FROM stay_nfo)),'%m-%d-%Y')  AS EndPeriod,
        idstays_nfo AS number_contract,
        post_id AS number_customer
      FROM
        `stay_nfo`
      WHERE ch_start_stay_date>=NOW()
     
      ORDER BY `stay_nfo`.`ch_start_stay_date` ASC;
    Avec le résultat ci-dessous

    Nom : Capture01.PNG
Affichages : 114
Taille : 5,8 Ko


    En revanche si je mets le max :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT
        date_format(max(ch_end_stay_date),'%m-%d-%Y') AS TEST,
        date_format((SELECT ch_end_stay_date FROM stay_nfo WHERE ch_end_stay_date >= ALL (SELECT ch_end_stay_date FROM stay_nfo)),'%m-%d-%Y')  AS EndPeriod,
        idstays_nfo AS number_contract,
        post_id AS number_customer
      FROM
        `stay_nfo`
      WHERE ch_start_stay_date>=NOW()
     
      ORDER BY `stay_nfo`.`ch_start_stay_date` ASC;
    avec ce résultat :
    Nom : Capture02.PNG
Affichages : 113
Taille : 5,0 Ko

    Je n'ai plus ma liste avec la date mini et la date maxi.
    C'est ce qui me pose problème car je n'ai pas trouvé le moyen de remplacer >=ALL pour conserver le même résultat.

  9. #9
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 380
    Points : 19 062
    Points
    19 062
    Par défaut
    Salut danamaro.

    Je vais reprendre les différents points de votre sujet.

    1) pourquoi avez-vous l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ERROR 1242 (21000) at line 53: Subquery returns more than 1 row
    L'erreur signifie que le résultat de votre select retourne plusieurs valeurs alors que vous en attendez qu'une seule.

    Si cela fonctionnait avant, c'était une erreur de la part de mysql. Il se peut que la nouvelle version que vous avez soit moins tolérante, d'où cette erreur.

    2) pourquoi cette erreur se produit ?
    Dans le cas de figure que vous nous donnez comme exemple, vous avez quatre lignes, ayant pour la colonne 'ch_end_stay_date', quatre fois la même valeur.
    Or MySql attend une et une seule valeur et vous en retournez quatre, d'où le message d'erreur.

    Je précise encore une fois, que vous devez récupérer une seule valeur et non plusieurs.

    3) comme résoudre votre problème ?
    Comme toutes les valeurs retournées sont identiques, pour devez les regrouper en une seule.
    Il existe une solution, qui consiste à distinguer d'une manière unique ces valeurs.
    Comme elles sont identiques, de ce fait, vous en aurez qu'une seule !
    Voici la solution, en rouge, que je propose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    date_format((SELECT distinct ch_end_stay_date FROM stay_nfo WHERE ch_end_stay_date >= ALL (SELECT ch_end_stay_date FROM stay_nfo)),'%m-%d-%Y') AS EndPeriod,
    4) comme je l'ai dit dans un autre message, le 'all' est désuet. Il exite une solution plus simple, que voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    date_format(max(ch_end_stay_date),'%m-%d-%Y') AS EndPeriod,
    5) comment introduire ce max dans votre requête, sans que cela perturbe vos extractions ?
    Il suffit de faire un select en le mettant entre parenthèse, comme ci après :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (select date_format(max(ch_end_stay_date),'%m-%d-%Y') from stay_nfo) AS EndPeriod,
    6) le problème de cette colonne 'EndPeriod', c'est que l'extraction est indépendante de votre requête.
    D'autant plus, que vous allez extraire ce que vous recherchez, à chaque ligne de votre table.
    D'où aussi un problème de performance !

    7) et pour finir, je vous propose un résumé que voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    --------------
    SET AUTOCOMMIT = 0
    --------------
     
    --------------
    START TRANSACTION
    --------------
     
    --------------
    DROP DATABASE IF EXISTS `base`
    --------------
     
    --------------
    CREATE DATABASE `base`
            DEFAULT CHARACTER SET `latin1`
            DEFAULT COLLATE       `latin1_general_ci`
    --------------
     
    --------------
    DROP TABLE IF EXISTS `stay_nfo`
    --------------
     
    --------------
    CREATE TABLE IF NOT EXISTS `stay_nfo`
    (
      `post_id`              integer unsigned NOT NULL AUTO_INCREMENT,
      `ch_start_stay_date`   date             NOT NULL,
      `ch_end_stay_date`     date             NOT NULL,
      `idstays_nfo`          integer          NOT NULL,
      PRIMARY KEY (`post_id`)
    ) ENGINE=InnoDB
      DEFAULT CHARSET=`latin1` COLLATE=`latin1_general_ci`
      ROW_FORMAT=COMPRESSED
    --------------
     
    --------------
    insert into `stay_nfo` (`post_id`,`idstays_nfo`,`ch_start_stay_date`,`ch_end_stay_date`) values
    (259, 275, '2015-11-21', '2016-01-09'),
    (261, 277, '2015-12-04', '2016-01-09'),
    (260, 276, '2015-12-26', '2016-01-09'),
    (213, 267, '2016-01-02', '2016-01-09')
    --------------
     
    --------------
    select * from stay_nfo order by ch_start_stay_date
    --------------
     
    +---------+--------------------+------------------+-------------+
    | post_id | ch_start_stay_date | ch_end_stay_date | idstays_nfo |
    +---------+--------------------+------------------+-------------+
    |     259 | 2015-11-21         | 2016-01-09       |         275 |
    |     261 | 2015-12-04         | 2016-01-09       |         277 |
    |     260 | 2015-12-26         | 2016-01-09       |         276 |
    |     213 | 2016-01-02         | 2016-01-09       |         267 |
    +---------+--------------------+------------------+-------------+
    --------------
    select max(ch_end_stay_date) into @endperiod from stay_nfo
    --------------
     
    --------------
    SELECT date_format(ch_start_stay_date,'%m-%d-%Y') AS BeginPeriod,
           date_format(@endperiod,        '%m-%d-%Y') AS EndPeriod,
           idstays_nfo AS number_contract,
           post_id AS number_customer
    FROM stay_nfo
    WHERE ch_start_stay_date>=NOW()
    ORDER BY `stay_nfo`.`ch_start_stay_date` ASC
    --------------
     
    +-------------+------------+-----------------+-----------------+
    | BeginPeriod | EndPeriod  | number_contract | number_customer |
    +-------------+------------+-----------------+-----------------+
    | 11-21-2015  | 01-09-2016 |             275 |             259 |
    | 12-04-2015  | 01-09-2016 |             277 |             261 |
    | 12-26-2015  | 01-09-2016 |             276 |             260 |
    | 01-02-2016  | 01-09-2016 |             267 |             213 |
    +-------------+------------+-----------------+-----------------+
    --------------
    select post_id,
    (SELECT distinct ch_end_stay_date FROM stay_nfo WHERE ch_end_stay_date >= ALL (SELECT ch_end_stay_date FROM stay_nfo)) as EndPeriod
    from stay_nfo
    --------------
     
    +---------+------------+
    | post_id | EndPeriod  |
    +---------+------------+
    |     213 | 2016-01-09 |
    |     259 | 2016-01-09 |
    |     260 | 2016-01-09 |
    |     261 | 2016-01-09 |
    +---------+------------+
    --------------
    SELECT date_format(ch_start_stay_date,'%m-%d-%Y') AS BeginPeriod,
           (select date_format(max(ch_end_stay_date),'%m-%d-%Y') from stay_nfo) AS EndPeriod,
           idstays_nfo AS number_contract,
           post_id AS number_customer
    FROM stay_nfo
    WHERE ch_start_stay_date>=NOW()
    ORDER BY `stay_nfo`.`ch_start_stay_date` ASC
    --------------
     
    +-------------+------------+-----------------+-----------------+
    | BeginPeriod | EndPeriod  | number_contract | number_customer |
    +-------------+------------+-----------------+-----------------+
    | 11-21-2015  | 01-09-2016 |             275 |             259 |
    | 12-04-2015  | 01-09-2016 |             277 |             261 |
    | 12-26-2015  | 01-09-2016 |             276 |             260 |
    | 01-02-2016  | 01-09-2016 |             267 |             213 |
    +-------------+------------+-----------------+-----------------+
    --------------
    COMMIT
    --------------
     
    --------------
    SET AUTOCOMMIT = 1
    --------------
     
     
    Appuyez sur une touche pour continuer...
    J'espère maintenant que vous avez compris comment résoudre votre problème.

    Si vous êtes satisfait, mettez moi plein de +1 !
    De même, passez votre sujet "à résolu".

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Ebeniste
    Inscrit en
    Décembre 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ebeniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2013
    Messages : 30
    Points : 33
    Points
    33
    Par défaut
    Merci Artemus24 d'avoir passant un moment à résoudre mon problème.
    Cela fonctionne très bien.

    Merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comparaison de 2 bases MySQL
    Par achiou59 dans le forum Administration
    Réponses: 6
    Dernier message: 31/08/2009, 15h49
  2. Requête incompatible MySql 4.0.18
    Par Equinoxe5 dans le forum Requêtes
    Réponses: 2
    Dernier message: 17/07/2009, 22h45
  3. Surcharge opérateur comparaison et pointeurs
    Par jp.lorient dans le forum Débuter
    Réponses: 12
    Dernier message: 04/05/2009, 14h09
  4. Comparaison de tableaux (PERL + MYSQL + CISCO)
    Par pat94 dans le forum Langage
    Réponses: 5
    Dernier message: 05/10/2007, 15h06
  5. Comparaison de dates dans Mysql
    Par inch dans le forum Requêtes
    Réponses: 2
    Dernier message: 05/05/2007, 12h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo