MYSQL使用第2个表从1个表中订购数据

时间:2010-07-29 15:50:24

标签: php mysql

是否有可用于从第二个表中订购商品的MYSQL查询。

我的例子 我正在列出我的商店...每个商店都有不同的产品在不同的表中。 所以我的商店列表显示了该商店中的产品数量..

有一个简单的MYSQL查询,所以我可以按产品数量订购我的商店

我的商店没有数字值,它计算第二张表中的行数

2 个答案:

答案 0 :(得分:3)

如果我理解您的问题,您可能需要尝试以下内容:

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)

答案 1 :(得分:0)

只要您有兴趣加入第二个表格,它就应该很简单。

Select a.* From `FirstTable` a
Inner Join `SecondTable` b on a.SomeCol = b.SomeCol
Order By b.OrderingCol