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 !).
# EXCEPT ?
Posté par idiotduvillage . En réponse au message mysql et requetes imbriques. Évalué à 2.
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 !).