Requêtes MySQL pour OCS

Résolu
takitaka Messages postés 14 Statut Membre -  
takitaka Messages postés 14 Statut Membre -
Bonjour,

J'utilise le logiciel de gestion de parc OCS inventory et j'ai besoin de faire des requêtes sur la base SQL.

J'ai une table "softwares" qui contient les champs "NAME" (le nom du logiciel) & "HARDWARE_ID".
J'ai une autre table "hardware" qui contient les champs "USERID" (nom de l'utilisateur) & ID (qui est égal à "HARDWARE_ID" de la table "softwares").

Je voudrais afficher la liste des utilisateurs qui ne possèdent pas le logiciel "VNC" par exemple, comment puis-je faire ?
Je crois qu'il faut que je fasse une "outer join" mais je n'y arrive pas...

Pour info c'est MySQL 5.0.27 + phpMyAdmin 2.9.1.1
Merci !

2 réponses

  1. phil232
     
    SELECT DISTINCT
    USERID
    FROM
    softwares
    INNER JOIN hardware ON HARDWARE_ID = ID
    WHERE
    USERID NOT IN
    (
    SELECT
    USERID
    FROM
    softwares
    INNER JOIN hardware ON HARDWARE_ID = ID
    WHERE
    NAME = 'VNC'
    )
    0
  2. takitaka Messages postés 14 Statut Membre 1
     
    Merci Phil mais MySQL me répond :

    #1052 - Column 'NAME' in where clause is ambiguous . Il faut lui spécifier la table...puis après c'est au tour de "ID"...Donc j'ai modifié 2-3 trucs, et ça donne ceci qui fonctionne à merveille:

    SELECT DISTINCT `USERID`
    FROM `softwares`
    INNER JOIN `hardware` ON `softwares`.`HARDWARE_ID` = `hardware`.`ID`
    WHERE `hardware`.`USERID` NOT IN ( SELECT `USERID` FROM softwares
    INNER JOIN `hardware` ON `softwares`.`HARDWARE_ID` = `hardware`.`ID`
    WHERE `softwares`.`NAME` = 'VNC')
    LIMIT 0 , 30

    Encore merci de ton aide
    0