是否有一个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/

10-11 05:14