Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL从一个表更新到另一个表,没有公共数据_Mysql_Oracle Sqldeveloper - Fatal编程技术网

Mysql SQL从一个表更新到另一个表,没有公共数据

Mysql SQL从一个表更新到另一个表,没有公共数据,mysql,oracle-sqldeveloper,Mysql,Oracle Sqldeveloper,在myCustomer表中,有一行名为*inactive_status*,它始终设置为“Active”。除非*is_paid*(位于Billing_Info表中)设置为0。我需要使用Update命令,但无法找到它。以下是我到目前为止的情况: UPDATE Customer SET inactive_status = 'INACTIVE' WHERE (SELECT is_paid FROM Billing_Info WHERE billing_info.is_paid = 0); DDL: 有

在myCustomer表中,有一行名为*inactive_status*,它始终设置为“Active”。除非*is_paid*(位于Billing_Info表中)设置为0。我需要使用Update命令,但无法找到它。以下是我到目前为止的情况:

UPDATE Customer
SET inactive_status = 'INACTIVE'
WHERE
(SELECT is_paid
FROM Billing_Info
WHERE billing_info.is_paid = 0);
DDL:


有什么建议吗?

您应该调查触发器的使用情况。设置触发器,使特定客户的
非活动状态
在其
已付费时更新为
非活动状态
,将
标志更改为0将是一个完美的解决方案。

客户
连接到
计费信息
的唯一方法是
计费信息id

如果您的RDBMS是Oracle,那么您的
更新
查询可能如下所示

UPDATE (SELECT c.inactive_status 
          FROM customer c INNER JOIN
               billing_info b ON c.billing_info_id = b.billing_info_id
         WHERE b.is_paid_this_month = 0)
   SET inactive_status = 'INACTIVE';
这是假设关系为1:1,很难从ddl中确定


这里是

您的账单信息表中应该有一个客户id。否则,您如何知道哪些客户机应该更新?有,但客户id与非活动状态无关。我在用别人的作品,不能回去改变任何东西。基本上,每个客户都有存储在多个表中的信息,我现在处理的数据在它们之间没有链接,但需要链接。请为这两个表发布DDL(创建表语句)
customer
Billing\u Info
创建表Billing\u Info
账单信息id INT,
账单日期id INT,
是过期号(1,0)不为空,
日期上次付款日期,
是本月付款号(1,0)不为空,
付款金额小数点(6,2)不为空,
账单金额小数点(6,2)不为空,
约束计费信息id\u pk主键(计费信息id)
创建表客户
客户id INT,
加入日期不为空,
计费信息id INT不为空,
非活动状态VARCHAR2(25),
联系人信息id INT不为空,
约束客户id\u主键(客户id)
)
非常好的建议!如果我熟悉触发器,对我来说会更好,但不幸的是,我只是一个初学者。谢谢!我发现我可以这样做,或者将非活动状态放在账单信息表中并以这种方式更新。我认为这样做不管用,但嘿,我没什么好抱怨的。
UPDATE (SELECT c.inactive_status 
          FROM customer c INNER JOIN
               billing_info b ON c.billing_info_id = b.billing_info_id
         WHERE b.is_paid_this_month = 0)
   SET inactive_status = 'INACTIVE';