8791 sujets

Développement web côté serveur, CMS

Bonjour tout le monde,
je sèche sur une requète SQL qui concerne 2 tables.

La première table BIJOUX, contient par exemple :
BIJOUX
ID|TYPE|ETAT|STOCK
1|bague|1|0
2|bague|2|0
3|bague|2|0
4|pendentif|1|0
5|pendentif|2|0
6|pendentif|2|1


La seconde table BAGUE contient les stock selon les tailles des bagues
BAGUE
ID|t50|t52|t54
1|0|0|0
2|0|0|0
3|0|5|0

Je cherche à faire une requète SQL avec 3 conditions :

-obtenir tout les articles avec l'état 1.
- SI etat=2 ET TYPE= BAGUE ALORS obtenir les articles que SI t50>0 OU t52>0 OU t54>0 etc..
-SI etat=2 et TYPE différent de 'bague' alors obtenir que si le stock de la table bijoux >0.

J'ai essayé avec la requète suivante :
SELECT * FROM bijoux, bague WHERE (bijoux.etat=1) || (bijoux.etat=2 AND bijoux.type!='bague' AND bijoux.stock>0) || ((bijoux.etat=2) AND (bijoux.type='bague') AND (bijoux.id = bague.id) AND ((bague.t40>0) ||  (bague.t42>0) || (bague.t44>0) || (bague.t46>0) || (bague.t48>0) || (bague.t50>0) || (bague.t52>0) || (bague.t54>0) || (bague.t56>0) || (bague.t58>0) || (bague.t60>0) || (bague.t62>0) || (bague.t64>0) || (bague.t66>0) || (bague.t68>0) || (bague.t70>0))


Mais j'obtiens une erreur, j'ai du faire une erreur quelques part ? Smiley sweatdrop

Des suggestions ?
Modifié par lupyo (03 Aug 2012 - 17:59)
Trouvé.

j'ai réussi de la façon suivante :


SELECT * FROM bijoux AS p LEFT JOIN bague AS c ON p.id = c.id  WHERE (p.etat='1') OR ((p.etat='2') && (p.type!='bague') && (p.stock>0)) OR ((c.t40>'0') ||  (c.t42>'0') || (c.t44>'0') || (c.t46>'0') || (c.t48>'0') || (c.t50>'0') || (c.t52>'0') || (c.t54>'0') || (c.t56>'0') || (c.t58>'0') || (c.t60>'0') || (c.t62>'0') || (c.t64>'0') || (c.t66>'0') || (c.t68>'0') || (c.t70>'0'))


Sa pourra peut-être servir à quelqu'un.
++