我正在尝试合并两个比较匹配字段的表,但我正在更正以下错误:- "SQL_ANALYSIS_ERROR:无法识别的名称: t2 (行: 87,列: 121)“,其中第二个表重命名了t2
这是我的密码:-
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
);发布于 2020-05-09 10:50:10
您可以使用NOT EXISTS只选择在table_2中没有匹配e_id的table_1行
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
);编辑不存在将是标准的正确选择,但是看到下面的注释,它将引发一个错误。所以不是在可能会更好
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
);https://stackoverflow.com/questions/61695272
复制相似问题