Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1867 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Débutant, question sur syntaxe requete SQL

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Débutant, question sur syntaxe requete SQL

n°1259897
SirFr
Objectif 8K Laser
Posté le 06-12-2005 à 11:51:20  profilanswer
 

Bonjour,
 
Utilisant une boutique OScommerce et PHPMyAdmin, j'utilise une petite requete pour pour lister l'ensemble de mes produits par nom, prix et ID sur un seul document (type EXCEL)
 
SELECT p.products_id, (p.products_price * 1.055), pd.products_name
FROM products p, products_description pd
WHERE p.products_id = pd.products_id
GROUP BY products_id
ORDER BY pd.products_name
 
Je souhaiterais exclure de cette liste exhaustive certaines catégories où sont classées ces produits.
Ces catégories ont bien entendu un identifiant numérique, ainsi qu'une dénomination.
 
Quelle serait l'expression SQL à rajouter pour parvenir à cela?
 
Par avance merci de votre aide.
 
SF

mood
Publicité
Posté le 06-12-2005 à 11:51:20  profilanswer
 

n°1259924
mrbebert
Posté le 06-12-2005 à 12:37:52  profilanswer
 

Dans la clause WHERE, rajouter quelque chose du genre :
AND p.id_categorie NOT IN (1, 22, 37, 72) [:proy]

n°1259939
SirFr
Objectif 8K Laser
Posté le 06-12-2005 à 13:04:38  profilanswer
 

Bonjour et merci de la réponse
Pour l'instant je me retrouve avec une erreur de syntaxe 1064 ou sur l'incapacité de SQL à trouver la categories_id (qui appartient à la table categories).
 
Je vais continuer à chercher.
 
SF

n°1259963
mrbebert
Posté le 06-12-2005 à 13:35:42  profilanswer
 

Tu dois avoir un champ, soit dans products p, soit dans products_description, qui y fait référence :??:

n°1260008
SirFr
Objectif 8K Laser
Posté le 06-12-2005 à 14:08:57  profilanswer
 

Effectivement il y a une autre table appelée products_to_categories qui contient products_id et categories_id et fait le croisement, visiblement.
 
Je ne l'avais pas vu. je dois donc faire appel à trois table : products, products_description et products_to_categories.
 
Je veux bien encore un peu d'aide mrbebert si tu le peux...
 
Merci d'avance
 
SF

n°1260133
mrbebert
Posté le 06-12-2005 à 15:17:33  profilanswer
 

Tu as déjà une jointure, avec les 2 tables et la condition qui permet de relier ces 2 tables. Là, c'est pareil, tu as juste à en ajouter une 3ème avec la condition qui va bien :)

n°1260159
Arjuna
Aircraft Ident.: F-MBSD
Posté le 06-12-2005 à 15:30:38  profilanswer
 

ça dépends si tu veux :
 
"ne pas afficher les produits qui appartiennent à certaines catégories"
ou
"afficher les produits qui appartiennent aux autres catérogies"
 
(ben ouais, en algèbre ensembliste, ce n'est pas équivalent)
 
Exemple :
 
Le produit A appartient aux catégories 1 et 2.
 
Toi, tu ne veux pas la catégorie 1, mais afficher TOUS les produits qui appartiennent à la catégorie 2 (même s'ils sont aussi dans la catégorie 1)
 
select distinct ...
from ...
where categorie_id not in (1)
 
 
Ou alors, tu ne veux pas afficher les produits qui sont dans la catégorie 1, même s'ils sont présents dans d'autres catégories :
 
select ...
from ...
where no exists (select null from product_to_categorie where product_to_categorie.product_id = product_id and product_to_category.category_id in (1))

n°1260187
SirFr
Objectif 8K Laser
Posté le 06-12-2005 à 15:49:35  profilanswer
 

Merci bcp de votre aide.
Je ne suis pas confronté à cette problématique, heureusement.  
La remarque est cependant totalement judicieuse!
Mes produits sont suffisament sectorisés pour ne pas poser ces problèmes. Je sais qu'en excluant telle catégorie, je n'exclue pas de produits recherché.
 
Mon problème reste donc de formuler la 3e condition évoquée par mrbebert.
 
Mais je n'arrive pas à trouver la juste syntaxe sql.
 
Je suis vraiment désolé de vous embêter avec ces problèmes de débutant.
Mais il faut bien commencer un jour...
 
Merci encore
 
SF

n°1260212
cinocks
Posté le 06-12-2005 à 16:16:04  profilanswer
 

SirFr a écrit :

Bonjour,
 
Utilisant une boutique OScommerce et PHPMyAdmin, j'utilise une petite requete pour pour lister l'ensemble de mes produits par nom, prix et ID sur un seul document (type EXCEL)
 
SELECT p.products_id, (p.products_price * 1.055), pd.products_name
FROM products p, products_description pd
WHERE p.products_id = pd.products_id
GROUP BY products_id
ORDER BY pd.products_name
 
Je souhaiterais exclure de cette liste exhaustive certaines catégories où sont classées ces produits.
Ces catégories ont bien entendu un identifiant numérique, ainsi qu'une dénomination.
 
Quelle serait l'expression SQL à rajouter pour parvenir à cela?
 
Par avance merci de votre aide.
 
SF


 
Le group by ne sert à rien ici, tu n'utilises pas d'aggregat (sum, count, avg, max, min...)


---------------
MZP est de retour
n°1260217
SirFr
Objectif 8K Laser
Posté le 06-12-2005 à 16:19:01  profilanswer
 

Bonjour
 
Pourtant sans ce groupe les produits ne bénéficient pas d'un classement prioritaire par dénomination...
Ceci dit ça je peux le faire après sous excel par exemple.
 
SF

mood
Publicité
Posté le 06-12-2005 à 16:19:01  profilanswer
 

n°1260224
Arjuna
Aircraft Ident.: F-MBSD
Posté le 06-12-2005 à 16:23:30  profilanswer
 

order by suffit, tu peux trier par autant de colonnes que tu veux...

n°1260225
SirFr
Objectif 8K Laser
Posté le 06-12-2005 à 16:25:13  profilanswer
 

Je prends bonne note de cela, merci beaucoup
 
SF


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Débutant, question sur syntaxe requete SQL

 

Sujets relatifs
ptite question en sql/phpProbleme de requete.
[PL/SQL] Stockage d'un selectSQL Access/Oracle
requête sql d'une valeur sur tout les champs d'une tableUne simple question (js)
Syntaxe conversion des decimalesStandalone pour aller chercher des infos dans une base SQL
Y a pas un site pour les debutant ( aucune base en prog ) ?[PL/SQL] Curseur et boucles FOR imbriquées [Résolu]
Plus de sujets relatifs à : Débutant, question sur syntaxe requete SQL


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR