MYSQL连接表并选择特定日期无订单的客户

MYSQL连接表并选择特定日期无订单的客户,mysql,inner-join,notin,Mysql,Inner Join,Notin,我在使用mysql查询时遇到问题。我有一个客户表和一个订单表,由客户ID链接。订单表有一个日期字段,我试图列出某个月(2016年7月)没有任何订单的客户的姓名。有人告诉我不在可能会有帮助,但我不知道该怎么办。我查找了类似的示例,但它们使用的是NULL。我尝试了此操作,但它不喜欢此位置的无效输入: 选择customer.cust\u名称 来自客户 ordertbl.cust\u id=customer.cust\u id上的左加入ordertbl 订单日期如“2016-07%”不在订单日期中 然后

我在使用mysql查询时遇到问题。我有一个客户表和一个订单表,由客户ID链接。订单表有一个日期字段,我试图列出某个月(2016年7月)没有任何订单的客户的姓名。有人告诉我不在可能会有帮助,但我不知道该怎么办。我查找了类似的示例,但它们使用的是NULL。我尝试了此操作,但它不喜欢此位置的无效输入:

选择customer.cust\u名称 来自客户 ordertbl.cust\u id=customer.cust\u id上的左加入ordertbl 订单日期如“2016-07%”不在订单日期中

然后我尝试了这个,但没有结果:

选择customer.cust\u名称 来自客户 ordertbl.cust\u id=customer.cust\u id上的左加入ordertbl 其中,选择COUNTorder_日期,如“2016-07%”为空

我还发现了一个类似的例子,但没有得到结果:

选择customer.cust\u名称 来自客户 其中ordertbl.cust\u id不在 选择customer.cust\u id 来自订单TBL 其中ordertbl.order_日期如“2016-07%”


我肯定我在这件事上做错了。我尝试了一些其他的例子,但这些都不起作用。非常感谢您的帮助。

假设在orders表中,您的客户ID引用称为customer\u ID,则查询为:

SELECT CUSTOMER.CUST_NAME
    FROM CUSTOMER
    WHERE CUST_ID IN
        (SELECT ORDERTBL.CUSTOMER_ID 
        FROM ORDERTBL
        WHERE DATE <> yourdate)

还在挣扎吗?看,谢谢,这似乎已经按计划进行了,但我有一个关于日期的问题。我不想要一个具体的日期,而是一个月,所以我用“2016-07”来代替yourdate。它似乎起了作用,但基于您使用的事实,我本以为必须使用NOT LIKE来代替。你能解释为什么不是这样吗?要使用LIKE运算符,你应该将日期转换为文本。但更容易安装,写:WHERE DATE>='2017-01-01'和DATE