Ajouter des col. à un résultat si une condition est satisfaite [MySQL] - SQL/NoSQL - Programmation
Marsh Posté le 18-05-2008 à 01:48:52
Salut !
place ton orders.paid dans ta jointure externe et non dans le where qui lui s'applique sur l'ensemble des résultat SUITE aux jointures)
ce qui ressemblerait vaguement à :
SELECT p.id,p.description,o.id,.... |
Marsh Posté le 18-05-2008 à 12:36:55
Merci spike, je suis en train de tester, j'ai un petit souci car même si la commande est payée, order_id reste vide, je vais d'où ça peut venir.
Marsh Posté le 17-05-2008 à 22:40:51
J'ai 3 tables:
orders (id, user_id, total, paid)
items (order_id, product_id, quantity)
products (id, description)
Mon but est de d'afficher un produit, ainsi que les commandes auquel il appartient. Et s'il ne fait partie d'aucune commande, et bien je veux quand même voir ses données.
Pour le moment je fais ça avec 2 requêtes: une qui fait un simple SELECT sur products avec WHERE id=id_du_produit. Et une seconde qui détermine si le produit appartient à une commande qui a été payée.
J'essaye de la réduire en seule requête, donc j'ai essayé avec LEFT JOIN qui marche bien, mais dès que je mets un WHERE orders.paid = 1, si le produit n'appartient à aucune commande payée, le résultat est un tableau vide. Or moi je veux qu'au minimum les colonnes du produit soient renvoyées, et si le produit appartient à au moins une commande payée, et bien les colonnes de ces commands soient jointes au résultat.
Est-ce que je cherche à faire est possible ou bien je dois rester avec mes 2 requêtes?