2个表之间的BigQuery差异

时间:2019-12-10 11:11:38

标签: google-cloud-platform google-bigquery

我试图在2个表之间搜索时查找并返回不匹配的行

两个表都具有相同的3列。这两个表的ID数量完全相同。这些表是“ a”和“ b”

颜色; (ID,国家/地区,密码失败)

我试图返回所有表之间通过失败不匹配(id匹配)的所有行

我尝试运行2个查询,但似乎无法打印出结果行。


SELECT a.*
FROM a
    LEFT JOIN b ON (a.passfail = b.passfail)
WHERE a.passfail IS NULL


SELECT a.* 
FROM a 
AS a JOIN b 
AS b 
ON a.passfail = b.passfail 
WHERE a.passfail != b.passfail

这些查询似乎都不适合我。

任何帮助或建议都将受到赞赏!

1 个答案:

答案 0 :(得分:2)

您必须加入 id 字段。这是一个示例:

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