Google cloud platform 两个表之间的BigQuery差异
在两个表之间搜索时,我试图查找并返回不匹配的行 两个表有相同的3列。两个表的ID数量完全相同。桌子是a和b 科尔斯;身份证,国家,通行证 我试图返回id匹配的表之间passfail不匹配的所有行 我试图运行2个查询,但似乎无法打印结果行 这两个问题似乎对我都不起作用 欢迎提供任何帮助或建议 您必须在id字段中加入。以下是一个例子:Google cloud platform 两个表之间的BigQuery差异,google-cloud-platform,google-bigquery,Google Cloud Platform,Google Bigquery,在两个表之间搜索时,我试图查找并返回不匹配的行 两个表有相同的3列。两个表的ID数量完全相同。桌子是a和b 科尔斯;身份证,国家,通行证 我试图返回id匹配的表之间passfail不匹配的所有行 我试图运行2个查询,但似乎无法打印结果行 这两个问题似乎对我都不起作用 欢迎提供任何帮助或建议 您必须在id字段中加入。以下是一个例子: WITH a as (SELECT * FROM UNNEST(ARRAY<STRUCT<id INT64, country STRING, passfa
WITH a as (SELECT * FROM UNNEST(ARRAY<STRUCT<id INT64, country STRING, passfail BOOL>>[(1, 'uk', true), (3, 'fr', false)])),
b as (SELECT * FROM UNNEST(ARRAY<STRUCT<id INT64, country STRING, passfail BOOL>>[(1, 'uk', true), (3, 'fr', true)]))
SELECT
a.*
FROM
a
LEFT JOIN
b
ON
(a.id = b.id)
WHERE
a.passfail != b.passfail
这很好。考虑使用一个完整的外部连接,从A和B中选择两个表中的错配。建议的查询检索两个表上存在的ID匹配的所有匹配项。b、 passfail选择在passfail时不匹配的@谢默斯,如果询问回答你的问题,请考虑接受。但如果没有,请随时询问任何澄清。
SELECT a.*
FROM a
AS a JOIN b
AS b
ON a.passfail = b.passfail
WHERE a.passfail != b.passfail
WITH a as (SELECT * FROM UNNEST(ARRAY<STRUCT<id INT64, country STRING, passfail BOOL>>[(1, 'uk', true), (3, 'fr', false)])),
b as (SELECT * FROM UNNEST(ARRAY<STRUCT<id INT64, country STRING, passfail BOOL>>[(1, 'uk', true), (3, 'fr', true)]))
SELECT
a.*
FROM
a
LEFT JOIN
b
ON
(a.id = b.id)
WHERE
a.passfail != b.passfail