无匹配主键的两表Update语句编写:更新STG表特定员工Flag字段
正确的Update语句实现方案
你的SQL语句存在拼写错误:form应改为from,同时不同数据库的Update关联语法略有差异,以下是主流数据库的正确实现:
MySQL 版本
UPDATE STG_Table STG INNER JOIN Post_Table P ON STG.job_post = P.job_post SET STG.Flag = 1 WHERE UPPER(P.descr) LIKE '%SPECIALIST%' AND P.setid = 'C65';
SQL Server 版本
UPDATE STG SET Flag = 1 FROM STG_Table STG INNER JOIN Post_Table P ON STG.job_post = P.job_post WHERE UPPER(P.descr) LIKE '%SPECIALIST%' AND P.setid = 'C65';
PostgreSQL 版本
UPDATE STG_Table SET Flag = 1 WHERE job_post IN ( SELECT job_post FROM Post_Table WHERE UPPER(descr) LIKE '%SPECIALIST%' AND setid = 'C65' );
以上语句均通过job_post字段匹配两表数据,仅将STG表中符合Post_Table筛选条件的员工Flag字段更新为1,其余员工的Flag值保持原有状态。
内容的提问来源于stack exchange,提问作者SQL.query2325
相关产品推荐
相关产品推荐

