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

PHP & Base de données Discussion :

[SQL] comment lié deux requete


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 282
    Par défaut [SQL] comment lié deux requete
    salut voici ma question

    je voudrai liée deux requete je m'explique

    j'ai besoin deux faire 2 requetes qui ont les meme attribut la seule difference est comment je la gere en fonction du donné dans un cas il faut que je group by dans l'autre non mais j'ai besoin de ces 2 information donc je voudrai faire les 2 requete et les regrouper pour ensuite faire la lecture ligne par ligne pour afficher le tout

    ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    "SELECT * FROM base where ok="True" GROUP BY Nom"
    "SELECT * FROM base where ok="False"
    je voudrai recuperer
    Nom | ok
    -------------------------
    toto True
    titi True
    tata True
    lolo False
    lolo False
    lili False
    ...


    j'espere avoir ete claire

    merci pour l'aide d'avance

  2. #2
    Membre chevronné Avatar de TucSale
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 264
    Par défaut
    Salut,

    Avec un ORDER BY ok ca te convient pas?

    "SELECT * FROM base where GROUP BY Nom ORDER BY ok DESC

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 282
    Par défaut
    le order by va juste me le ranger mai ne va pas modifier les donnée choisi or il le faut si tu regarder l'exemple pour ok = false j'ai deux fois lolo alor que j'ai pa de doublon au niveau de ok = true il faut que je fasse se mecanisme

    bien essayer

  4. #4
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Par défaut
    tu peux toujours faire un UNION des 2 requetes.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 282
    Par défaut
    comment on fait je connai pas la syntaxe de cette methode

    merci

  6. #6
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT * FROM base where ok="True" GROUP BY Nom
    UNION
    SELECT * FROM base where ok="False"

  7. #7
    Membre Expert

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Par défaut
    les union ne sont en général par supportées par les versions courantes installées de mysql.

    Est-ce que le fait que le tri ne SOIT PAS fait lors de la requete en FALSE est important ?

    sinon, tu peux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT *
    FROM table
    WHERE ok IN ('True', 'False')
    ORDER BY ok DESC, nom ASC
    A noter que j'espere que ton champ ok ne contient pas que "true" et "false"... sinon c'est carrement pas optimisé... un TINYINT(1) aurait suffit.

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 282
    Par défaut
    oui il faut que le group by se fasse que lorsque la valeur vos true

    sinon pour l'histoire du TInYInt() je ne connais pa mai moi pr info j'ai mit char (1) je croi

    je c pa si c'est le mieux

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 282
    Par défaut
    j'ai tester le UNION cela a fonctionné comme je le desirai
    sinon je suis interessé par ta remarque sur l'attribut dans champ de type boolean car moi j'ai mi un char(1)

    merci pour l'aide

  10. #10
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Par défaut
    si tu as mis un char(1) cest deja pas si mal.
    quelles sont les valeurs possibles (lettre ou chiffre?)
    sinon il faut que tu modifie ta colonne
    regarde du coté de ALTER


    bon courage

  11. #11
    Membre Expert

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Par défaut
    oui, char(1) c'est moins pire que blob c'est sur ;o)

    mais "char(1)" reste un type caractere (donc pouvant prendre 256 valeurs différentes)

    tinyint(1) restreint les valeurs a 10 valeurs possibles (0,1,2,3,4,5,6,7,8,9)
    et plus un champ est restreint dans ses valeurs, plus l'utilisation de ce champs dans une clause where est optimisé.

    Tu pourrais donc utiliser 0 pour FALSE et 1 pour TRUE par exemple.

    En pratique, ca changera pas grand chose quand meme, on voit ici :
    http://dev.mysql.com/doc/refman/4.1/...uirements.html
    qu'un tinyint et un char(1) prendront la meme place. Par contre, l'indexation de la colonne se fera plus facilement sur un type entier que sur un caractere

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 282
    Par défaut
    ok merci je capte mieux je vai voir pour modifier mon champs merci encore

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 24/03/2013, 12h58
  2. [SQL]Comment optimiser cette requete?
    Par neeux dans le forum Langage SQL
    Réponses: 2
    Dernier message: 31/12/2008, 08h21
  3. sql mixe de deux requetes complexes
    Par Alex35 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 07/11/2007, 11h44
  4. [SQL] Comment soustraire deux dates
    Par raj dans le forum Oracle
    Réponses: 2
    Dernier message: 12/10/2005, 12h40
  5. Réponses: 2
    Dernier message: 03/05/2004, 12h13

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