le problème c'est qu'il peut y avoir différents produits du même nom et de dates différentes donc je pense être obligée de faire les jointures.
Version imprimable
le problème c'est qu'il peut y avoir différents produits du même nom et de dates différentes donc je pense être obligée de faire les jointures.
Je te dis juste que si h3.produit_id IS NULL, h3.produit_date le sera forcément aussi. Donc ça ne sert à rien de tester les deux.
Après ton ajout de date dans la jointure ne correspond pas à ton exemple initial, mais c'est toi que ça regarde.
oui c'est sûr
par contre, j'ai surement mal lu mais je ne vois plus ce que représente h3 dans ta requête ? :
Citation:
SELECT h.produit_id
FROM historique h
INNER JOIN produit p
ON p.produit_id=h.produit_id
LEFT JOIN historique h2
ON h.produit_id=h2.produit_id AND h2.etat='remplacé'
WHERE h3.produit_id IS NULL
AND h.etat='modifié'
AND p.type='FR'
Les affres du copier-coller.
J'ai simplifié en supprimant la sous-requête, mais j'ai fait trop vite.
Il faut mettre h2
je te remercie de ta patience
bonne fin de journée à tous !
Je dois avouer que leme gêne 'cor'assez, car on mélange des conditions de jointure avec des conditions de filtrage.Code:AND h2.etat='remplacé'
Mais ça nous évite une sous-requête, ce qui doit bien booster le bouzin, en principe.
Si quelqu'un(e) a une solution plus orthodoxe et/ou plus performante....