加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql – 使用另一个表中的值更新表

发布时间:2021-04-01 19:39:14 所属栏目:MySql教程 来源:网络整理
导读:我有这些表: customer: customer_id vat_number =========== ========== 1 ES-0000001 2 ES-0000002 3 ES-0000003invoice: invoice_id customer_id vat_number ========== =========== ========== 100 1 NULL 101 3 NULL 102 3 NULL 103 2 NULL 104 3 NUL

我有这些表:

customer:
    customer_id vat_number
    =========== ==========
              1 ES-0000001
              2 ES-0000002
              3 ES-0000003


invoice:
    invoice_id customer_id vat_number
    ========== =========== ==========
           100           1 NULL
           101           3 NULL
           102           3 NULL
           103           2 NULL
           104           3 NULL
           105           1 NULL

我想用invoice.vat_number中的当前值填充invoice.vat_number中的NULL值.是否可以使用单个SQL语句执行此操作?

我到目前为止触发了语法错误:

UPDATE invoice
SET vat_number=cu.vat_number /* Syntax error around here */
FROM invoice iv
INNER JOIN customer cu ON iv.customer_id=cu.customer_id
WHERE invoice.invoice_id=iv.invoice_id;
最佳答案 使用MySQL,ANSI-92 JOIN语法:

UPDATE INVOICE
  JOIN CUSTOMER ON CUSTOMER.customer_id = INVOICE.customer_id
   SET vat_number = CUSTOMER.vat_number  
 WHERE INVOICE.vat_number IS NULL

使用MySQL,ANSI-89 JOIN语法:

UPDATE INVOICE,CUSTOMER 
   SET INVOICE.vat_number = CUSTOMER.vat_number  
 WHERE CUSTOMER.customer_id = INVOICE.customer_id
   AND INVOICE.vat_number IS NULL

对于more info,see the MySQL UPDATE documentation.这是MySQL特定的UPDATE语句语法,不太可能在其他数据库上受支持.

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读