【问题标题】:SQL Query to update data from 2 tables into another oneSQL查询将数据从2个表更新到另一个表
【发布时间】:2013-04-05 14:35:45
【问题描述】:

我有一个 table_a,我想用其他 2 个表中的数据进行更新。

table_a
+----+---------+------------+-------+
| id |  user   |    date    | valid | 
+----+---------+------------+-------+
| 10 | Bob     |            |       |
| 11 | Joe     |            |       |
| 12 | Joe     |            |       |
| 13 | Pete    |            |       |
| 14 | Bob     |            |       | 
+----+---------+------------+-------+

日期来自 table_b 其中 table_b.rel_id = table_a.id

table_b
+----+----------+----------+
| id |  rel_id  |  date    | 
+----+----------+----------+
| 30 |    8     | 10/10/11 |
| 31 |    9     | 10/10/11 |
| 32 |   10     | 10/10/11 |
| 33 |   11     | 10/10/11 |
| 34 |   12     | 10/10/11 |
| 35 |   13     | 10/10/11 |
| 36 |   14     | 10/10/11 |        
+----+----------+----------+

valid 来自 table_c where table_c.rel_id = table_a.id

table_c
+----+----------+----------+
| id |  rel_id  |  valid   | 
+----+----------+----------+
| 40 |   10     |   yes    |
| 41 |   11     |   no     |
| 42 |   12     |   yes    |
| 43 |   13     |   no     |
| 44 |   14     |   yes    |
| 45 |   15     |   no     |
| 46 |   16     |   yes    |        
+----+----------+----------+

如何使用 SQL 查询来完成?

【问题讨论】:

    标签: mysql sql sql-update


    【解决方案1】:

    您可以使用INNER JOIN 简单地加入表格。

    UPDATE  table_a a
            INNER JOIN table_b b
                ON a.id = b.rel_id
            INNER JOIN table_c c
                ON a.id = c.rel_id
    SET     a.date = b.date,
            a.valid = c.valid
    

    【讨论】:

    • @mellamokb 哎呀谢谢,我也忙着做小提琴和修复错字:)
    • 你们太棒了,立即回答并完美呈现 SQLFiddle。我什至不能写得那么快。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 2022-07-19
    • 2010-09-18
    相关资源
    最近更新 更多