首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在GoogleSql Bigquery中使用where子句和Union

在GoogleSql Bigquery中使用where子句和Union
EN

Stack Overflow用户
提问于 2020-05-09 10:29:56
回答 1查看 274关注 0票数 0

我正在尝试合并两个比较匹配字段的表,但我正在更正以下错误:- "SQL_ANALYSIS_ERROR:无法识别的名称: t2 (行: 87,列: 121)“,其中第二个表重命名了t2

这是我的密码:-

代码语言:javascript
复制
CREATE OR REPLACE TABLE table_1 OPTIONS (
  quota_accounting_owner='sxxx@gmail.com')
AS 
  SELECT * FROM
  (
  SELECT * EXCEPT(fate_result), CAST(fate_result AS STRING) AS fate_result FROM table_1 AS t1 WHERE t2.e_id <> t1.e_id
  UNION DISTINCT
  SELECT * EXCEPT(fate_result), CAST(fate_result AS STRING) AS fate_result FROM table_2 AS t2
    );
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-09 10:50:10

您可以使用NOT EXISTS只选择在table_2中没有匹配e_idtable_1

代码语言:javascript
复制
CREATE OR REPLACE TABLE table_1 OPTIONS (
  quota_accounting_owner='sxxx@gmail.com')
AS 
  SELECT * FROM
  (
    SELECT * EXCEPT(fate_result), CAST(fate_result AS STRING) AS fate_result
    FROM table_1 AS t1
    WHERE NOT EXISTS (
       SELECT 1
       FROM table_2 AS t2
       WHERE t2.e_id = t1.e_id
    )
    UNION DISTINCT
    SELECT * EXCEPT(fate_result), CAST(fate_result AS STRING) AS fate_result
    FROM table_2 AS t2
  );

编辑不存在将是标准的正确选择,但是看到下面的注释,它将引发一个错误。所以不是在可能会更好

代码语言:javascript
复制
CREATE OR REPLACE TABLE table_1 OPTIONS (
  quota_accounting_owner='sxxx@gmail.com')
AS 
  SELECT * FROM
  (
    SELECT * EXCEPT(fate_result), CAST(fate_result AS STRING) AS fate_result
    FROM table_1 AS t1
    WHERE t1.e_id NOT IN (
       SELECT t2.ed_id
       FROM table_2 AS t2
    )
    UNION DISTINCT
    SELECT * EXCEPT(fate_result), CAST(fate_result AS STRING) AS fate_result
    FROM table_2 AS t2
  );
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61695272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档