I would like to know what is the difference between these two code blocks, because for me it looks like the same result will show up.
We are looking for all records in the "commande" table that do not have an article with "stylo" in their designation.
SELECT Commande.Numero, Commande.ClientNo
FROM Commande
WHERE (Commande.Numero, Commande.ClientNo) IN (
SELECT LigneCommande.CommandeNo, LigneCommande.ClientNo
FROM LigneCommande
INNER JOIN Article AS A
ON A.Numero = LigneCommande.ArticleNo
WHERE A.Designation <> 'Stylo')
SELECT Commande.Numero, Commande.ClientNo
FROM Commande
WHERE (Commande.Numero, Commande.ClientNo) NOT IN (
SELECT LigneCommande.CommandeNo, LigneCommande.ClientNo
FROM LigneCommande
INNER JOIN Article AS A
ON A.Numero = LigneCommande.ArticleNo
WHERE A.Designation = 'Stylo')