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

Requêtes MySQL Discussion :

Problème avec de multiple sous-requêtes


Sujet :

Requêtes MySQL

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2012
    Messages : 37
    Points : 31
    Points
    31
    Par défaut Problème avec de multiple sous-requêtes
    Bonjour,

    Je suis actuellement entrain de travailler sur une requête permettant de retourner le nom d'un équipement dans glpi (ordinateur, écran, imprimantes, etc...), malheureusement je rencontre un problème lors de l'exécution de ma requête.
    Les sous-requêtes n'ont pas accès au champ items_id de la table jointe (#1054 - Champ 'git.items_id' inconnu dans where clause).

    Voici la requête :

    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
     
    SELECT
        gt.id,
        (
            SELECT
                NAME
            FROM
                (
                    SELECT
                        NAME
                    FROM glpi_computers
                    WHERE   id = git.items_id
                ) AS t1
            UNION
                (
                    SELECT
                        NAME
                    FROM glpi_monitors
                    WHERE   id = git.items_id
                )
            UNION
                (
                    SELECT
                        NAME
                    FROM glpi_networkequipments
                    WHERE id = git.items_id
                )
            UNION
                (
                    SELECT
                        NAME
                    FROM glpi_printers
                    WHERE id = git.items_id
                )
        ) AS aliasIT
    FROM glpi_tickets gt
    INNER JOIN glpi_items_tickets git 
    ON gt.id = git.tickets_id;
    Voyez-vous une solution pour que je puisse accéder au champ items_id de la table glpi_items_tickets ?

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2012
    Messages : 37
    Points : 31
    Points
    31
    Par défaut
    EDIT: Finalement voici la solution : https://paste2.org/0a1hUd5n

    La partie intéressante (qui viens remplacer ma requête précédente) :
    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
     
    (SELECT ( CASE git.itemtype 
                   WHEN 'Computer' THEN (SELECT name 
                                         FROM   glpi_computers 
                                         WHERE  id = git.items_id) 
                   WHEN 'Monitor' THEN (SELECT name 
                                        FROM   glpi_computers 
                                        WHERE  id = git.items_id) 
                   WHEN 'Network Equipment' THEN (SELECT name 
                                                  FROM   glpi_networkequipments 
                                                  WHERE  id = git.items_id) 
                   WHEN 'Printer' THEN (SELECT name 
                                        FROM   glpi_printers 
                                        WHERE  id = git.items_id) 
                   ELSE NULL 
                 end ) AS t)                  AS aliasIT

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

Discussions similaires

  1. [AC-2010] Gestion des Null sous requête paramétrée
    Par Basicnav dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 28/03/2013, 21h53
  2. Insertion multiple + sous-requête
    Par Cyprien_ dans le forum Langage SQL
    Réponses: 2
    Dernier message: 13/10/2007, 17h14
  3. Requête à paramètres multiples
    Par b00tny dans le forum Oracle
    Réponses: 12
    Dernier message: 26/04/2006, 11h35
  4. Réponses: 5
    Dernier message: 18/11/2005, 23h28
  5. Insertion multiple à base de sous requête SELECT
    Par drinkmilk dans le forum Langage SQL
    Réponses: 8
    Dernier message: 14/04/2005, 16h34

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