【问题标题】:Compare 2 tables with reference number and update value将 2 个表与参考编号和更新值进行比较
【发布时间】:2016-07-27 03:44:58
【问题描述】:

我在使用涉及比较两个表的列和更新的 SQL 查询 (Microsoft Access) 时遇到问题

我想比较 tableA.com_idtableB.com_id,如果它们相同,请在 tableA.check 中更新“TRUE”,并使用每个引用 tableA.ref_id

表A

ref_id | com_id |检查
10001 | 20001 |
10002 | 20008 |
10003 | 20005 |
10004 | 20001 |

表B

ref_id | com_id |
10001 | 20001 |
10004 | 20004 |
10002 | 20008 |
10001 | 20011 |
10001 | 20021 |

期望的输出:

ref_id | com_id |检查
10001 | 20001 |真的
10002 | 20008 |真的
10003 | 20005 |
10004 | 20001 |

我尝试了很多查询,但都不起作用。例如:

UPDATE tableA SET CHECK = 'TRUE' 
WHERE tableA.ref_id = (SELECT ref_id FROM tableB) 
 AND tableA.com_id  = (SELECT com_id FROM tableB)

【问题讨论】:

    标签: sql ms-access


    【解决方案1】:

    听起来你应该使用join

    update tableA
    join (tableB on tableA.ref_id = tableB.ref_id and tableA.com_id = tableB.com_id) 
    set tableA.Check = 'TRUE'
    

    【讨论】:

    • 一些更新的语法错误,如果更新 tableA join tableB on (tableA.ref_id = tableB.ref_id and tableA.com_id = tableB.com_id) set tableA.Check = 'TRUE' 仍然相同
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多