计算表中的行与其他表中的某个值

时间:2016-10-05 15:23:04

标签: mysql

我需要一种快速查找表中项目数的方法。这些项目链接到另一个表格。表1是产品,表2是订单。

订单包含付费状态(1或0)。

订单表示例:

id paid
1  0
2  1

产品表示例:

id orderid type
1  1       5
2  1       5
3  1       3
4  2       5
5  2       5
6  2       3

产品包含引用订单和类型的id(orderid)。所以我需要订单表中type = 5和paid = 1的产品数量。

最好和最快的方法是什么?

所以我需要所有类型为5的付费产品。结果应该是' 2'。

2 个答案:

答案 0 :(得分:0)

一种方法是使用join语句。对您的架构做一些假设,以下内容应该有效:

SELECT COUNT(p.`id`) FROM `products_table` p
LEFT JOIN `orders_table` o ON p.`orderid` = o.`id`
WHERE o.`paid` = 1
AND p.`type` = 5

答案 1 :(得分:0)

你可以使用像这样的连接,

SELECT COUNT(*) AS num_rows 
FROM products 
LEFT JOIN orders ON orders.id = products.orderid 
WHERE type = 5 AND paid = 1