• # EXCEPT ?

    Posté par . En réponse au message mysql et requetes imbriques. Évalué à 2.

    Hello,

    Je ne sais pas si MySQL (dans la version que tu utilises) gère le mot clé EXCEPT (en fait j'utilise PostgreSQL), mais tu peux toujours essayer un:

    SELECT prod_id FROM produit EXCEPT SELECT prod_id FROM societeprod WHERE societeid=$societe_id; (1)

    Avec cette requête on devrait donc obtenir les identifiants des produits uniquement.
    Je suppose donc qu'il faudrait faire une jointure du style

    SELECT P.prod_nom
    FROM produit AS P,
    (SELECT prod_id FROM produit EXCEPT SELECT prod_id FROM societeprod WHERE societeid=$societe_id) AS P1
    WHERE P.prod_id=P1.prod_id;

    Cela dit, si ça ne gère pas non plus la sous-requête de cette forme, ce n'est pas mieux comme proposition.

    Donc si tu veux uniquement les noms de produits en une seule requête "simple", il suffirait de remplacer prod_id par pro_nom dans (1) mais cela pourrait poser des problèmes de performances si les tables ont de très nombreux enregistrement et/ou si cette requête est très souvent utilisée !

    Je suis peut-être aussi totalement à côté de la plaque (ça m'arrive ... assez souvent !).