使用左连接选择计数(*)

时间:2013-11-28 10:13:40

标签: mysql sql select count

我有一个查询,我尝试检索行数,但在我的情况下,每次下降结果为1。我想这是一个加入问题,我不知道如何处理这个

SELECT 
  COUNT(*) AS summe 
FROM
  feeds 
  LEFT JOIN cat_product cp 
    ON cp.product_id = feeds.productid 
WHERE 1 = 1 
  AND cp.price BETWEEN 950 
  AND 1450 
  AND cp.ram_cap BETWEEN 5 
  AND 11 
  AND feeds.tdcategoryname LIKE '%Laptop%' 
  AND feeds.brand IN ('Dell', 'Lenovo', 'Acer', 'Asus') 
GROUP BY cp.product_id 

1 个答案:

答案 0 :(得分:0)

试试这个,不确定您使用的是MySQL还是MSSQL。由于您LEFT JOIN,因此值可能为NULL。在MSSQL中,如果计算NULL值,结果将为NULL始终使用像COUNT这样的聚合函数时。

对于MySQL

SELECT 
  COUNT(IFNULL(cp.Procuct_id,0)) AS summe 
FROM
  feeds 
  LEFT JOIN cat_product cp 
    ON cp.product_id = feeds.productid 
WHERE 1 = 1 
  AND cp.price BETWEEN 950 
  AND 1450 
  AND cp.ram_cap BETWEEN 5 
  AND 11 
  AND feeds.tdcategoryname LIKE '%Laptop%' 
  AND feeds.brand IN ('Dell', 'Lenovo', 'Acer', 'Asus') 
相关问题