改善我的mysql查询的替代方法?

时间:2019-04-25 04:03:14

标签: mysql sql mysql-workbench

是否有编写此查询的最佳方法?在工作台上它可以正常工作,但是当我在JS上运行它时,它没有返回正确的值。

我想做的是要根据用户的过滤设置(基于所选类别的材料和设计)向用户显示所有项目的列表。

查询:

SELECT COUNT(A.id)
FROM tbl_product A 
JOIN tbl_product_details B ON A.id = B.prod_id
JOIN tbl_category C ON A.id = C.prod_id
JOIN tbl_material D ON A.id = D.prod_id
JOIN tbl_design E ON A.id = E.prod_id
WHERE C.category_id IN (6) AND (D.material_id IN (15) OR E.design_id IN (39));

db structure looks like this

我希望输出为(工作台结果):
COUNT(A.id):42

相反,它给了我:
COUNT(A.id):1582

1 个答案:

答案 0 :(得分:0)

我猜你想要:

SELECT COUNT(DISTINCT A.id)

可能还有其他方式来表达查询短语(特别是使用EXISTS),但这是最简单的修改。