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 :

[MySQL] Petit problème de SELECT


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 11
    Par défaut [MySQL] Petit problème de SELECT
    Coucou,
    J'ai un petit soucis pour obtenir ce dont j'ai envie avec ma requête, en gros j'aimerai récupérer tous les "Id_Theme" qui n'ont pas déjà un "Id_Langue" donné (l'Id 1 en l'occurence) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Id_Theme | Id_Langue
        1          1
        1          2
        2          2
    Ici, seul l'Id_Theme 2 devrait ressortir car l'Id_Theme 1 a déjà un Id_Langue égal à 1, ma requête (qui ne fonctionne pas correctement car elle me ressort l'Id_Theme 1 et 2) étant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT
        Id_Theme
    FROM
        themes
    WHERE
        Id_Langue!=1
    GROUP BY
        Id_Theme
    Merci d'avance !

    Coma.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 11
    Par défaut
    C'est re-moi,
    Je m'en veux, je me suis précipité sur le bouton nouveau sujet alors qu'il y avait un sujet qui traite du même problème que le miens sur la première page..
    Je vous autoriste à me fouetter ! :p

    Encore désolé !

    Coma le boulet.

  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
    22 001
    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 : 22 001
    Billets dans le blog
    6
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT Id_Theme
    FROM   themes t1
    WHERE  NOT EXISTS (SELECT *
                       FROM   themes t2
                       WHERE  t1.Id_Theme = t2.Id_Theme
                         AND  Id_Langue = 1)
    Au passage votre requête contient une erreur et une horreur :
    1) le symbole "différente de " n'est pas !=, mais <>
    2) le group by n'a aucun intérêt. Il est absurde. Un group by s'utilise pour faire des sous ensembles dans le cas des calculs d'agrégats statistiques (MAX, MIN, AVG...)

    Il serait donc temps d'apprendre le langage SQL. Mon site comme mes bouquins peuvent vous y aider !

    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
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 136
    Par défaut
    C'est à ça que sert exists :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SELECT
            T.Id_Theme
    FROM
            themes as T
    WHERE
            not exists  (   select 1
                            from    themes as L
                            where   L.Id_Theme = T.Id_Theme
                                and Id_Langue = 1
                        )
    GROUP BY
            T.Id_Theme
    ;
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

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

Discussions similaires

  1. problème de select en mysql/java
    Par taouja dans le forum JDBC
    Réponses: 8
    Dernier message: 17/04/2007, 09h39
  2. Problème avec select sous MYSQL
    Par Thomad dans le forum Langage SQL
    Réponses: 2
    Dernier message: 26/01/2006, 11h26
  3. Petit problème avec vb6 et mysql
    Par AsmCode dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 05/01/2006, 04h44
  4. [débutant] petit problème de selection...
    Par Avalon dans le forum Access
    Réponses: 5
    Dernier message: 04/01/2006, 23h33
  5. [XSL] Petit problème de selection d'un noeud
    Par Greg L. dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 25/04/2005, 09h39

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