Si je comprends bien votre problème, vous voudrez peut-être essayer quelque chose comme ce qui suit:
SELECT stores.id store_id, COUNT(products.id) num_products
FROM stores
LEFT JOIN products ON (stores.id = products.store_id)
GROUP BY stores.id
ORDER BY num_products;
Cas de test:
CREATE TABLE stores (id int, name varchar(10));
CREATE TABLE products (id int, store_id int);
INSERT INTO stores VALUES (1, 'store 1');
INSERT INTO stores VALUES (2, 'store 2');
INSERT INTO stores VALUES (3, 'store 3');
INSERT INTO stores VALUES (4, 'store 4');
INSERT INTO products VALUES (1, 1);
INSERT INTO products VALUES (2, 1);
INSERT INTO products VALUES (3, 1);
INSERT INTO products VALUES (4, 2);
INSERT INTO products VALUES (5, 3);
INSERT INTO products VALUES (6, 3);
Résultat:
+----------+--------------+
| store_id | num_products |
+----------+--------------+
| 4 | 0 |
| 2 | 1 |
| 3 | 2 |
| 1 | 3 |
+----------+--------------+
4 rows in set (0.00 sec)
Vous pouvez également trier par ordre décroissant en ajoutant ing DESC
après ORDER BY num_products
:
+----------+--------------+
| store_id | num_products |
+----------+--------------+
| 1 | 3 |
| 3 | 2 |
| 2 | 1 |
| 4 | 0 |
+----------+--------------+
4 rows in set (0.00 sec)
Pls postent que vous avez essayé, quelques exemples de données, et les résultats escomptés. –
Oui, vous pouvez, en utilisant un 'join'. Voir le commentaire d'OMG Ponies. – MvanGeest
Eh bien, je n'ai rien essayé parce que j'ai l'impression que son possible mysql lancé. Je voudrais construire un tableau avec toutes mes données de la première table ... puis extrayé les données des produits et affiché mon tableau .. mais il semble compliqué pour rien. – StiGMaT