SQL Dojo Bêta
Technique

Semi-jointure

Les lignes qui ont au moins une correspondance, chacune gardée une fois.
SELECT p.*
FROM products p
WHERE EXISTS (SELECT 1 FROM order_lines l WHERE l.product_id = p.product_id);

Un simple JOIN répéterait un produit autant de fois qu'il a été vendu.

SELECT COUNT(*) AS products,
       COUNT(*) FILTER (WHERE EXISTS (SELECT 1 FROM order_lines l WHERE l.product_id = p.product_id)) AS sold
FROM products p;
productssold
8074
L’essayer en Randori