Sql:关于Update语句

时间:2017-08-10 21:51:28

标签: mysql

我正在尝试使用以下更新语句根据在master_table中找到的匹配项数更新table1_orig_namesplits表的SUIDMatches列。 但我得到一个“错误代码:1054。'on clause'中的未知列'al.source_id'”错误。

UPDATE test.table1_orig_namesplits al
SET al.SUIDMatches = ( 
    SELECT count(distinct v.SUID)
    FROM test.master_table v 
    JOIN test.table1_orig a ON al.source_id = a.id_names
    WHERE al.name_first = v.FirstName 
    AND al.name_last = v.LastName 
    AND a.date_of_birth_dt = v.BirthDate_dt );

source_id表格中的table1_orig_namesplits列与id_names的{​​{1}}列相匹配。 任何人都可以建议如何修复此更新声明?

1 个答案:

答案 0 :(得分:0)

问题似乎是子查询尝试使用test.table1_orig中不属于联接的列来test.master_table加入test.table1_orig_namesplits

对于进一步的测试/分析,一些示例数据会有所帮助,但基本的想法是您要么必须加入子查询中的al,要么采取不同的方法。