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

Langage SQL Discussion :

UNION ? des lignes qui ne sont pas prises...


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 30
    Points : 22
    Points
    22
    Par défaut UNION ? des lignes qui ne sont pas prises...
    bonjour

    j'ai un problème avec UNION: quand je fais une requète seule, il me renvoie bien toutes les lignes que je veux, mais quand je rajoute une requète supplémentaire avec UNION, il ne me prend plus que 1 ligne sur 2 ou 3 de la première requète...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    SELECT jour as j, nb
    FROM fh
     
    SELECT jour as j, CONCAT('absent') as nb
    FROM absences
     
    ( SELECT jour as j, nb FROM fh)
    UNION
    ( SELECT jour as j, CONCAT('absent') as nb FROM absences )
    ORDER BY j
    je peux avoir plusieurs lignes dans fh pour le même jour, mais il m'en laisse de côté quelques unes et ça a l'air aléatoire ?
    par ailleurs, qd je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ( SELECT jour as j, SUM(nb) as nbtotal
    FROM fh 
    GROUP BY j)
    UNION
    ( SELECT jour as j, CONCAT('absent') as nbtotal FROM absences )
    ORDER BY j
    dans la somme SUM(nb), il me prend bien toutes les lignes.

    auriez-vous une explication?
    où pourrait se trouver l'erreur?

    merci

  2. #2
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    UNION supprime les doublons, essaye en remplaçant UNION par

  3. #3
    Membre expert
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Points : 3 103
    Points
    3 103
    Par défaut
    Bonjour,
    UNION tt seul élimine les doublons. (= DISTINCT). C'est la valeur par défaut. Si tu veux conserver ttes tes lignes utilise UNION ALL

    A +

    [EDIT]Grillé/EDIT[]

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 30
    Points : 22
    Points
    22
    Par défaut
    merci.

    désolé, j'avais pas bien approfondi la syntaxe de UNION, je comprenais pas bien.

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

Discussions similaires

  1. Afficher des lignes qui n'ont pas de résultat
    Par Nessie37 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 25/10/2007, 17h11
  2. Réponses: 6
    Dernier message: 29/06/2007, 11h38
  3. Réponses: 22
    Dernier message: 04/08/2006, 01h29
  4. Interdire des navigateur qui ne sont pas a jour ?
    Par allpicI2c dans le forum Général Conception Web
    Réponses: 5
    Dernier message: 28/01/2006, 19h30

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