Mysql 如何使用JOIN创建查询,以及在何处或如何使他们成为朋友?

Mysql 如何使用JOIN创建查询,以及在何处或如何使他们成为朋友?,mysql,join,Mysql,Join,我需要做一个查询,其中有客户的姓名和他们每月的订单列。 某些客户端在某些月份没有订单,这些字段必须有0。 问题是,当我在一个查询*中使用WHERE和OUTER JOIN(无论是哪一个)时,NESSARY zero’s cuteed by WHERE。那我怎么解决呢 表的描述符被固定 SELECT name , ordering.id_client , COUNT(order_date) FROM ordering RIGHT OUTER JOIN clie

我需要做一个查询,其中有客户的姓名和他们每月的订单列。 某些客户端在某些月份没有订单,这些字段必须有0。 问题是,当我在一个查询*中使用WHERE和OUTER JOIN(无论是哪一个)时,NESSARY zero’s cuteed by WHERE。那我怎么解决呢

表的描述符被固定

SELECT name
     , ordering.id_client
     , COUNT(order_date) 
  FROM ordering 
 RIGHT 
 OUTER 
  JOIN client 
    ON client.id_client = ordering.id_client 
 WHERE month(order_date) = 1 
 GROUP 
    BY name;

尝试从客户端表开始的简单左连接

    SELECT client.name
         , client.id_client
         , COUNT(order_date) 
      FROM client 
     LEFT JOIN  ordering  ON client.id_client = ordering.id_client 
       AND  month(ordering.order_date) = 1 
     GROUP  BY client.id_client;

如果联接条件与左联接表相关,则将此条件添加到相关的ON子句中,而不是添加到where中,否则此操作将作为内部联接

将日期的条件放入ON子句中,并删除其中:
ON client.id_client=ordering.id_client and month(order_date)=1
它可以工作。谢谢你的帮助,sry因为缺少信息,我只是不明白,你需要什么信息)id没有帮助更新你的问题添加一个适当的数据样本作为表格文本(而不是图像)和预期结果(不仅仅是你的actula结果)。。如果我们不知道起始数据,我们将无法评估结果。答案将更新为建议。。for join子句
    SELECT client.name
         , client.id_client
         , COUNT(order_date) 
      FROM client 
     LEFT JOIN  ordering  ON client.id_client = ordering.id_client 
       AND  month(ordering.order_date) = 1 
     GROUP  BY client.id_client;