我使用的是C#控制台应用程序,以获得从MySQL数据库中的一些数据,我有一些问题得到的查询权帮助MySQL查询
因为它现在是:
SELECT * FROM Customer
WHERE EXISTS (SELECT * FROM Customer_x_Billing c WHERE Customer.`customer id` = c.customer_id)
AND 2011 -04 -03 < (SELECT last_changed FROM Customer_x_Billing c WHERE Customer.`customer id` = c.customer_id)
ORDER BY Customer.`customer id`
我怎么能改进这一个? 我想要获得所有在Customer和Customer_x_Billing表中都有其ID并且Customer_x_Billing中的last_changed日期大于参数(本例中为2011-04-03)的所有客户。如果我将日期设置为2012-04-03,则不应该返回任何行,但会返回与第一个条件相匹配的所有记录(两者均存在)。
在此先感谢。
没有太多的分析你的查询,查询中最明显的问题就是你指定日期参数的方式。你得到的东西被解释为一个算术表达式,'2011-04-03',它被相应地评估,然后当与子查询的结果进行比较时隐式转换为日期/时间值。为了将参数解释为日期,您需要将其作为单引号括起来,就像大多数答案所示。 – 2011-04-11 07:28:51