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 :

Requête MySQL sur solution GLPI


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Contrat de professionnalisation
    Inscrit en
    Juillet 2014
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Contrat de professionnalisation
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 31
    Par défaut Requête MySQL sur solution GLPI
    Bonjour à tous !!!

    Je travaille sur la solution PCS/GLPI et je voudrais afficher un résultat du type:

    +------------------------------+
    | Nom_machine | Java_Vers |
    +------------------------------+
    |xxxxxxxxxxxxx|xxxxxxxxxx|
    |xxxxxxxxxxxxx|xxxxxxxxxx|
    |xxxxxxxxxxxxx|xxxxxxxxxx|
    +------------------------------+

    Mon gros soucis est que les champs que je veux interroger portent le même nom....

    glpi_computers.name
    Nom : mysql00.JPG
Affichages : 2285
Taille : 111,2 Ko

    glpi_softwares.name
    Nom : mysql01.JPG
Affichages : 2207
Taille : 70,2 Ko

    Pour cela j'ai donc écrit la requête suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT name
    FROM glpi_computers
    WHERE entities_id='101'
    UNION
    SELECT name
    FROM glpi_softwares
    WHERE name LIKE 'JAVA%'
    AND entities_id='101';
    Mais il m'affiche le résultat ci-desous:
    +------------------------------------------+
    | name |
    +------------------------------------------+
    | SAM-ADM-B021 |
    | SAM-SR1-086 |
    | SAM-SR1-155 |
    | SAM0-URG-B033 |
    | SAM0-URG-B034 |
    | PC-VEEAM |
    | SAM-0-INF-P-188 |
    | SAM0-CDR-B077 |
    | SAM1-BAM-B001 |
    | SAM0-CDR-B074 |
    | SAM0-SDR-B116 |
    | YOUR-B4729F58F4 |
    | SAM0-SDR-B111 |
    | SAM0-CDR-B072 |
    | SAM0-SDR-B113 |
    | SAM0-SDR-BBB |
    | SAM0-CDR-B073 |
    | SAM1-CDR-B051 |
    | SAM-SR2-101 |
    | SAM1-BCH-B002 |
    | SAM-SR2-089 |
    | SAM1-BAN-B004 |
    | SAM-SR2-007 |
    | SAM-SR2-090 |
    | SAM-SR2-086 |
    | SAM-SR2-088 |
    | SAM-SR2-087 |
    | SAM-SR2-085 |
    | SAM-SR2-083 |
    | SAM-SR2-082 |
    | ANESTHESIE-BM2 |
    | ANESTHESIE-BM3 |
    | SAM-SR2-084 |
    | SAM-SR2-120 |
    | ANESTHESIE-BM1 |
    | SAM-SR2-202 |
    | SAM-SRVFICH-01 |
    | SAM0-URG-B032 |
    | D4ZB2F4J |
    | SAM0-SECURG-38 |
    | SAM0-URG-P041 |
    | SAM0-URG-B035 |
    | SAM0-URG-B031 |
    | SAM0-URG-B030 |
    | SAM-SR2-008 |
    | SAM0-URG-B |
    | SAM-SR2-017 |
    | SAM-SR2-029 |
    | SAM1-BLC-B005 |
    | SAM-SR2-016 |
    | SAM-SR2-010 |
    | SAM-SR2-012 |
    | SAM-SR2-011 |
    | SAM1-BLC-B006 |
    | SAM-SR2-013 |
    | SAM-SR2-018 |
    | SAM0-SDR-B110 |
    | SAM0-SDR-B112 |
    | SAM0-URG-B040 |
    | SAM0-CDR-B070 |
    | SAM0-CDR-B071 |
    | SAM0-ACO-B010 |
    | SAM0-INF-P189 |
    | SAM1-PSC-P034 |
    | SAM3-PSC-P245 |
    | SAM-SRV-CORA |
    | SAM0-PMS-B220 |
    | SAM1-AMB-P035 |
    | SAM-HDD-30 |
    | 1C |
    | SAM1-SDR-B052 |
    | SAM0-ACO-B012 |
    | SAM-SR2-015 |
    | SAM-SR2-014 |
    | SAM1-BCH-B003 |
    | SAM0-PMS-B221 |
    | SAM0-ACO-B011 |
    | SAM0-ADM-B022 |
    | SAM0-ADM-B020 |
    | ADM1 |
    | SAM-SR1-171 |
    | SAM-SR1-223 |
    | SAM0-ADM-B024 |
    | SAM-SR1-151 |
    | SAM-SR1-222 |
    | SAM3-ADM-B025 |
    | SAM3-PSA-B231 |
    | SAM3-MAT3C-P244 |
    | SAM3-PSC-B236 |
    | SAM1-BLC-P025 |
    | SAM1-BLC-B009 |
    | SAM-WSUS-38 |
    | Java 2 Runtime Environment, SE v1.4.2_02 |
    | Java 7 Update 17 |
    | Java 7 Update 21 |
    | Java 7 Update 25 |
    | Java 7 Update 45 |
    | Java 7 Update 45 (64-bit) |
    | Java 7 Update 51 |
    | Java 7 Update 55 |
    | Java Auto Updater |
    | Java(TM) 6 Update 15 |
    | Java(TM) 6 Update 16 |
    | Java(TM) 6 Update 20 |
    | Java(TM) 6 Update 22 |
    | Java(TM) 6 Update 31 |
    | Java(TM) 6 Update 32 |
    | Java(TM) 6 Update 33 |
    | JavaFX 2.1.0 |
    | JavaFX 2.1.1 |
    +------------------------------------------+
    110 rows in set (0.01 sec)

    Je n'ai pas mes deux colonnes...

    Je ne sais pas trop quoi faire... Quelqu'un a une idée ?

    Merci beaucoup à tous !!

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations forums :
    Inscription : Juin 2012
    Messages : 3
    Par défaut
    Bonjour,

    Ce n'est pas une UNION qu'il faut faire, mais une jointure. Je ne connais pas GPLI, je ne sais donc pas sur quel champ vous devez faire la jointure, et en regardant le nom de vos champs, je ne trouve pas de software_id.

    Votre requete devrait ressembler à ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT C.name, S.name
    FROM glpi_computers C
    LEFT JOIN gpli_softwares S
    ON C.le champ = S.le champ
    WHERE C.entities_id='101'
    AND S.name LIKE 'JAVA%'
    AND S.entities_id='101';
    Il faut adapter la ligne ON C.le champ = S.le champ avec les bonnes valeurs.

  3. #3
    Membre averti
    Homme Profil pro
    Contrat de professionnalisation
    Inscrit en
    Juillet 2014
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Contrat de professionnalisation
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 31
    Par défaut
    Bonjour Deneth !

    Avant tout merci de votre réponse ^^

    Je teste tout de suite et je vous dis ce qu'il en est.

    Encore merci !

    Arn_no

  4. #4
    Membre averti
    Homme Profil pro
    Contrat de professionnalisation
    Inscrit en
    Juillet 2014
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Contrat de professionnalisation
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 31
    Par défaut
    SSSUUUPPPEEERRR !!!!!!!!!

    Un immense merci à vous Deneth ! Ça fonctionne et j'obtiens ce que je veux !!!

    Ne me reste plus qu'à faire un petit SELECT DISTINCT pour éviter les doublons et ça devrait être parfait !!

    Ci-dessous la requête complète et son résultat:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT C.name, S.name
    FROM glpi_computers C
    LEFT JOIN glpi_softwares S
    ON C.entities_id = S.entities_id
    WHERE C.entities_id='101'
    AND S.name LIKE 'JAVA%'
    AND S.entities_id='101';
    +-----------------+------------------------------------------+
    | name | name |
    +-----------------+------------------------------------------+
    | SAM-ADM-B021 | Java 2 Runtime Environment, SE v1.4.2_02 |
    .
    .
    .
    .
    .
    | SAM3-ADM-B025 | JavaFX 2.1.1 |
    | SAM3-PSA-B231 | JavaFX 2.1.1 |
    | SAM3-MAT3C-P244 | JavaFX 2.1.1 |
    | SAM3-PSC-B236 | JavaFX 2.1.1 |
    | SAM1-BLC-P025 | JavaFX 2.1.1 |
    | SAM1-BLC-B009 | JavaFX 2.1.1 |
    | SAM0-SDR-B116 | JavaFX 2.1.1 |
    | SAM-WSUS-38 | JavaFX 2.1.1 |
    | SAM0-ACC-B001 | JavaFX 2.1.1 |
    +-----------------+------------------------------------------+
    1692 rows in set (0.01 sec)

  5. #5
    Membre averti
    Homme Profil pro
    Contrat de professionnalisation
    Inscrit en
    Juillet 2014
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Contrat de professionnalisation
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 31
    Par défaut
    Lorsque j'utilise l'option DISTINCT le résultat passe de 1692 à 1674 lignes... Les doublons sont donc toujours autant présents.

    Je précise un peu la chose : lorsque je lance la même requête pour seulement une machine j'obtiens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT C.name, S.name
    FROM glpi_computers C
    LEFT JOIN glpi_softwares S
    ON C.entities_id = S.entities_id
    WHERE C.entities_id='SAM-ADM-B021'
    AND S.name LIKE 'JAVA%'
    AND S.entities_id='101';
    +--------------+------------------------------------------+
    | name | name |
    +--------------+------------------------------------------+
    | SAM-ADM-B021 | Java 2 Runtime Environment, SE v1.4.2_02 |
    | SAM-ADM-B021 | Java 7 Update 17 |
    | SAM-ADM-B021 | Java 7 Update 21 |
    | SAM-ADM-B021 | Java 7 Update 25 |
    | SAM-ADM-B021 | Java 7 Update 45 |
    | SAM-ADM-B021 | Java 7 Update 45 (64-bit) |
    | SAM-ADM-B021 | Java 7 Update 51 |
    | SAM-ADM-B021 | Java 7 Update 55 |
    | SAM-ADM-B021 | Java Auto Updater |
    | SAM-ADM-B021 | Java(TM) 6 Update 15 |
    | SAM-ADM-B021 | Java(TM) 6 Update 16 |
    | SAM-ADM-B021 | Java(TM) 6 Update 20 |
    | SAM-ADM-B021 | Java(TM) 6 Update 22 |
    | SAM-ADM-B021 | Java(TM) 6 Update 31 |
    | SAM-ADM-B021 | Java(TM) 6 Update 32 |
    | SAM-ADM-B021 | Java(TM) 6 Update 33 |
    | SAM-ADM-B021 | JavaFX 2.1.0 |
    | SAM-ADM-B021 | JavaFX 2.1.1 |
    +--------------+------------------------------------------+
    18 rows in set (0.01 sec)

    Et j'aimerais avoir uniquement la dernière version de JAVA installée sur ce poste, puis faire la même chose pour la requête du début... Donc pour toutes les machines appartenant à l'entité 101.

    Si quelqu'un à une petite idée même s'il faut utiliser un autre langage, merci beaucoup à lui !!!!

    Arn_no

  6. #6
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 063
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 063
    Par défaut
    Bonjour,

    Quelle version de GLPI utilisez-vous ?
    Parce que dans le schéma de la base de la dernière version (0.84), il n'y a pas de colonne entities_id.
    Or, j'ai du mal à comprendre comment se fait le lien entre un ordinateur et les logiciels installés dessus.
    De plus, dans le schéma de la dernière version, il y a un enregistrement des versions des logiciels sur lequel vous pourriez vous appuyer (si tant est que vous soyez en 0.84).

    Si vous êtes dans une version antérieure, je n'arrive pas à retrouver le schéma de la base... Difficile d'y voir clair dans ce cas.
    Il nous faudra sans doute le résultat de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SHOW CREATE TABLE glpi_computers;
    SHOW CREATE TABLE glpi_softwares;
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  7. #7
    Membre averti
    Homme Profil pro
    Contrat de professionnalisation
    Inscrit en
    Juillet 2014
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Contrat de professionnalisation
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 31
    Par défaut
    Citation Envoyé par Arn_no Voir le message
    Lorsque j'utilise l'option DISTINCT le résultat passe de 1692 à 1674 lignes... Les doublons sont donc toujours autant présents.

    Je précise un peu la chose : lorsque je lance la même requête pour seulement une machine j'obtiens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT C.name, S.name
    FROM glpi_computers C
    LEFT JOIN glpi_softwares S
    ON C.entities_id = S.entities_id
    WHERE C.entities_id='SAM-ADM-B021'
    AND S.name LIKE 'JAVA%'
    AND S.entities_id='101';
    +--------------+------------------------------------------+
    | name | name |
    +--------------+------------------------------------------+
    | SAM-ADM-B021 | Java 2 Runtime Environment, SE v1.4.2_02 |
    | SAM-ADM-B021 | Java 7 Update 17 |
    | SAM-ADM-B021 | Java 7 Update 21 |
    | SAM-ADM-B021 | Java 7 Update 25 |
    | SAM-ADM-B021 | Java 7 Update 45 |
    | SAM-ADM-B021 | Java 7 Update 45 (64-bit) |
    | SAM-ADM-B021 | Java 7 Update 51 |
    | SAM-ADM-B021 | Java 7 Update 55 |
    | SAM-ADM-B021 | Java Auto Updater |
    | SAM-ADM-B021 | Java(TM) 6 Update 15 |
    | SAM-ADM-B021 | Java(TM) 6 Update 16 |
    | SAM-ADM-B021 | Java(TM) 6 Update 20 |
    | SAM-ADM-B021 | Java(TM) 6 Update 22 |
    | SAM-ADM-B021 | Java(TM) 6 Update 31 |
    | SAM-ADM-B021 | Java(TM) 6 Update 32 |
    | SAM-ADM-B021 | Java(TM) 6 Update 33 |
    | SAM-ADM-B021 | JavaFX 2.1.0 |
    | SAM-ADM-B021 | JavaFX 2.1.1 |
    +--------------+------------------------------------------+
    18 rows in set (0.01 sec)

    Et j'aimerais avoir uniquement la dernière version de JAVA installée sur ce poste, puis faire la même chose pour la requête du début... Donc pour toutes les machines appartenant à l'entité 101.

    Si quelqu'un à une petite idée même s'il faut utiliser un autre langage, merci beaucoup à lui !!!!

    Arn_no
    !!! BONJOUR A TOUS !!!

    J'ai trouvé pourquoi ma requête ne fonctionnait pas !!!
    Il faudrait juste que j'apprenne à faire des jointures correctes ....
    I know --->

    liaison entre les tables glpi_softwares -> glpi_softwareversions -> glpi_computers_softwareversions -> glpi_computers.
    Nom : glpi_softwares - glpi_computers.JPG
Affichages : 2237
Taille : 76,2 Ko

    Liaison tables glpi_softwares -> glpi_softwareversions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    glpi_softwares.id=glpi_softwareversions_id
    Liaison tables glpi_softwareversions -> glpi_computers_softwareversions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    glpi_softwareversions.id=glpi_computers_softwareversions.softwareversions_id
    Liaison tables glpi_computers_softwareversions -> glpi_computers :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    glpi_computers_softwareversions.computers_id=glpi_computers.id
    Voici ma requête finale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT DISTINCT g_c.name AS nom_ordinateur, g_c.id AS id_ordinateur, g_s.name AS nom_logiciel, g_s.id AS id_logiciel
    FROM glpi_computers g_c, glpi_softwares g_s, glpi_softwareversions g_sv, glpi_computers_softwareversions g_csv
    WHERE g_s.id = g_sv.softwares_id
    AND g_sv.id = g_csv.softwareversions_id
    AND g_csv.computers_id = g_c.id
    AND g_c.entities_id="101"
    AND g_s.name LIKE "%Java(TM)_6_Update%"
    AND g_s.entities_id="101"
    ORDER BY nom_ordinateur;
    Et voici le résultat :
    Nom : glpi_softwares - glpi_computers - résultat.JPG
Affichages : 2253
Taille : 86,2 Ko


    !!! En tout cas merci à tous ceux qui on pris le temps de m'aider et de me donner des astuces et des conseils !!!
    ^^ A bientôt ^^

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

Discussions similaires

  1. Requête MySql sur VB
    Par walid kh dans le forum VB.NET
    Réponses: 19
    Dernier message: 22/03/2010, 10h46
  2. Requête MySQL sur des dates
    Par amazon dans le forum Requêtes
    Réponses: 1
    Dernier message: 12/09/2009, 09h30
  3. Ma requête Mysql sur trois tables plante easyphp
    Par sinifer dans le forum Requêtes
    Réponses: 8
    Dernier message: 29/04/2009, 16h37
  4. [MySQL] requête mysql sur un formulaire
    Par brunochp dans le forum PHP & Base de données
    Réponses: 18
    Dernier message: 19/03/2009, 22h57
  5. requête mysql sur serveur wamp en local !
    Par sebalab dans le forum Serveurs (Apache, IIS,...)
    Réponses: 2
    Dernier message: 19/04/2007, 19h18

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