根据另一个数据库中的表记录删除配置单元中的记录

n3h0vuf2  于 2021-06-28  发布在  Hive
关注(0)|答案(2)|浏览(264)

我有两个配置单元数据库,即db1和db2。在db1中有一个表叫做table1,在db2中有一个表叫做table2。我想根据表1中特定的列值删除表2中的一些行。
我使用下面的查询,但它失败了

DELETE FROM db2.table2
 WHERE db2.table2.F_SESSION IN (
   SELECT F_SESSION FROM db1.table1 
      WHERE db1.table1.STATUS = 1);

错误是

Error while compiling statement: FAILED: SemanticException [Error 10004]: Line 4:12 Invalid table alias or column reference 'db1': (possible column names are: f_session, status)

你知道我哪里出错了吗?顺便说一句,我不是一个有经验的sql人。

kdfy810k

kdfy810k1#

试试这个,

DELETE FROM db2..table2
 WHERE db2..table2.F_SESSION IN (
   SELECT F_SESSION FROM db1..table1 
      WHERE db1..table1.STATUS = 1);
2ul0zpep

2ul0zpep2#

但这奏效了

USE db2;
DELETE FROM table2 WHERE table2.F_SESSION IN (  
  SELECT F_SESSION FROM db1.table1 AS T1
      WHERE T1.STATUS = 1);

相关问题