繁体   English   中英

选择INNER JOIN mysql数据库

[英]Select INNER JOIN mysql DataBase

我想选择有条件的数据库,但不起作用。

我有这个查询:

 SELECT c.*
      ,s.*
      ,f.*
      ,count(c.id) as instock_count
      ,totals.orders_total
      ,GROUP_CONCAT(c.sku SEPARATOR '<br/>') AS sku
  FROM produse_com c
    INNER JOIN (SELECT * , SUM(stoc) as stoc_sum
                FROM stocuri_mentor 
                GROUP BY sku ) s 
      ON c.sku = s.sku
  INNER JOIN (SELECT count(id) as orders_total, id_comanda 
               FROM produse_com 
               WHERE NOT ridicat = 'Da'
                GROUP BY id_comanda ) totals
     ON totals.id_comanda = c.id_comanda 
  INNER JOIN (SELECT data_add, status, id_comanda
                FROM comenzi 
                  WHERE NOT (status = 'Impachetat' OR status = 'Stornat' OR status = 'Anulat')
                  ) f
     ON f.id_comanda = c.id_comanda
  WHERE stoc_sum >= c.qty
  GROUP BY c.id_comanda
  HAVING instock_count = orders_total

问题是我有一个条件WHERE NOT ridicat = 'Da'
但是结果包含ridicat = 'Da'所有结果

编辑:如果我删除此查询INNER JOIN (SELECT * ,SUM(stoc) as stoc_sum FROM stocuri_mentor GROUP BY sku ) s ON c.nume_produs = s.sku并且在WHERE stoc_sum >= c.qty结果就可以了

编辑2:解决方案=在条件WHERE stoc_sum >= c.qty AND ridicat <> 'Da'情况下再添加1个条件

您可以尝试此查询。

 SELECT count(id) as orders_total, id_comanda,  ridicat
                   FROM produse_com 
                   WHERE ridicat != 'Da'
                    GROUP BY id_comanda;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM