是否有一个MYSQL查询可以用于从第二个表中订购项目。
我的例子
我在列我的商店。。。每家商店都有许多产品放在不同的桌子上。
所以我的商店列表显示了商店里的产品数量。。
是否有一个简单的MYSQL查询,以便我可以按产品数量订购商店
我的商店没有数字的值,它计算第二个表中的行数
最佳答案
如果我正确理解您的问题,您可能需要尝试以下操作:
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;
测试用例:
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);
结果:
+----------+--------------+
| store_id | num_products |
+----------+--------------+
| 4 | 0 |
| 2 | 1 |
| 3 | 2 |
| 1 | 3 |
+----------+--------------+
4 rows in set (0.00 sec)
也可以通过在
DESC
之后添加ORDER BY num_products
按降序排序:+----------+--------------+
| store_id | num_products |
+----------+--------------+
| 1 | 3 |
| 3 | 2 |
| 2 | 1 |
| 4 | 0 |
+----------+--------------+
4 rows in set (0.00 sec)
关于php - 使用第二个表从1个表中进行MYSQL排序数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3364416/