Express/MySQL not returning same value returned by MySQL Workbench

寵の児 提交于 2019-12-24 10:50:49

问题


I have a query that is perfectly working when I run it on MySQL Workbench, but when I run it on Express it is returning me all the data on my database. Please help fix?
PS. posted this before but didn't get fixed.

--Client

$.ajax({
   url: '/filter',
   type: 'get',
   contentType: 'application',
   data: { categoryIDs : checkedCategory,
           materialIDs : checkedMaterial,
           designIDs   : checkedDesign},
   success: function(response) {
      console.log(response.products);
   }
});

--Server code

getFilteredTable: function(req, res, next) {
   var filter="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 (?) \
               AND (D.material_id IN (?) \
               OR E.design_id IN (?))";
   mysqlConnection.query(filter, [req.query.categoryIDs, req.query.materialIDs, req.query.designIDs], function(err, rows, fields) {
      if(!err)
      res.send({products : rows});
      else
      console.log(err);
   });
},

This is my query:

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));

I expect the output to be (workbench result):
COUNT(A.id): 42

instead, it's giving me:
COUNT(A.id): 1582

来源:https://stackoverflow.com/questions/55803063/express-mysql-not-returning-same-value-returned-by-mysql-workbench

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!