Join + résultats non compris

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Join + résultats non compris

Re: Join + résultats non compris

par Didjo » 23 déc. 2010, 18:31

En même temps si on l'sais pas ! :D

Merci beaucoup, parfait !

Re: Join + résultats non compris

par enneite » 23 déc. 2010, 13:23

Et en changeant le 'join' en 'left join',ça marcherait pas par hasard?

C'est peut être un peu plus compliqué que ça (quoi que pas sur) mais c'est du coté du "left join" qu'il faut que tu regardes à mon avis.

Join + résultats non compris

par Didjo » 22 déc. 2010, 20:18

Bonjour,

Nouveaux petit soucis avec une requête...

Deux tables
products [id, cat, name-fr, hidden, et d'autres...], table de produits avec diverses infos
homeslider-blocs [id-bloc, fk-id, display, position, diff-img, etc...], table de différents blocs (d'un slider), rattachés à des produits a priori existants dans product.

Pour afficher mon slider, j'utilise donc un JOIN qui récupère les infos que je veux des deux tables. Parfait.
Mais dans mon back-office, j'utilise une requête semblable (JOIN), qui me liste tous les éléments de homeslider-blocs :
SELECT s.`id-bloc`, s.`fk-id`, p.`id`, s.`display`, s.`position`, s.`diff-img`, s.`alt-desc-fr`, s.`alt-desc-en`, s.`alt-desc-ru`, p.`cat`, p.`name-fr`, p.`hidden` FROM `homeslider-blocs` s JOIN `products` p ON s.`fk-id` = p.`id` ORDER BY s.`position` ASC
Jusqu'ici aucun problème.
Si l'on supprime un produit depuis le back-office, celui-ci cherche également dans homeslider-blocs et change la valeur de fk-id pour "-1" si un bloc était associé au produit à supprimer. Je ne veux pas simplement supprimé la ligne du bloc associé, mais bien le gardé en tant que bloc n'étant plus associé à aucun produit.

Sauf que ma requête JOIN ignore, du coup, ce bloc donc la fk-id n'est associable à aucun produit !

Comment puis-je faire pour garder exactement le même résultat que cette requête (à savoir lister les lignes de homeslider-blocs et récupérer les infos des produits correspondant à fk-id), ET lister également les lignes donc la fk-id n'est pas associables (avec des valeurs vides pour p.`name-fr` par exemple, du moment que c'est en une seule requête) ?

Merci ! :merci: