在MySql中运行查询并更新结果

在MySql中运行查询并更新结果,mysql,Mysql,请原谅缺少格式!!! 由于某种原因,我想不出如何让它出现 和其他人一样漂亮 长期漫游者,第一次海报。我是MySql的新手,我很难理解为什么下面的代码不起作用 UPDATE CUSTOMER_T SET Cust_Status = 'INACTIVE' WHERE (SELECT DISTINCT Cust_No, Cust_Last_Name, Cust_Status FROM CUSTOMER_T NATURAL JOIN BILLING_T WHERE BILLING_T.

请原谅缺少格式!!! 由于某种原因,我想不出如何让它出现 和其他人一样漂亮

长期漫游者,第一次海报。我是MySql的新手,我很难理解为什么下面的代码不起作用

 UPDATE CUSTOMER_T

  SET Cust_Status = 'INACTIVE'

  WHERE (SELECT DISTINCT Cust_No, Cust_Last_Name, Cust_Status

FROM CUSTOMER_T NATURAL JOIN BILLING_T

WHERE BILLING_T.Cust_No = BILLING_T.Cust_No

AND (DATEDIFF(BILLING_T.Billing_Due_Date, BILLING_T.Billing_Date_Paid) < (-14)

AND CUSTOMER_T.Cust_Status = "ACTIVE") 

OR (CUSTOMER_T.Cust_Status = "ACTIVE"

AND BILLING_T.Billing_Date_Paid IS NULL));

实际上,您可以在更新中执行
连接
,如下所示:

UPDATE CUSTOMER_T a
INNER JOIN BILLING_T b ON 
    a.Cust_No = b.Cust_No AND 
    a.Cust_Status = 'ACTIVE' AND 
    (
        b.Billing_Date_Paid IS NULL OR
        DATEDIFF(b.Billing_Due_Date, b.Billing_Date_Paid) < -14
    )
SET a.Cust_Status = 'INACTIVE'
更新客户\u T a
内部连接计费\u T b打开
a、 客户编号=b.客户编号和
a、 客户状态=‘活动’和
(
b、 付款日期为空或
DATEDIFF(b.账单到期日,b.账单日期支付日)<-14
)
设置a.Cust_状态='INACTIVE'

账单表和客户表有何关联?每个客户的账单表中只有一行吗?赞恩-感谢您的帮助!你的代码确实有效。尽管如此,我仍在努力理解它到底在做什么。那么你给客户和账单的别名正确吗?你能解释一下为什么那是必要的吗。我真的不知道,如果我能理解它的意思,那么代码的其余部分对我来说会更有意义。再次感谢您这么快的回复!!!还有,为什么这个该死的文本框不让我用回车键??:)
Error Code: 1241. Operand should contain 1 column(s)
UPDATE CUSTOMER_T a
INNER JOIN BILLING_T b ON 
    a.Cust_No = b.Cust_No AND 
    a.Cust_Status = 'ACTIVE' AND 
    (
        b.Billing_Date_Paid IS NULL OR
        DATEDIFF(b.Billing_Due_Date, b.Billing_Date_Paid) < -14
    )
SET a.Cust_Status = 'INACTIVE'