google-cloud-platform - 两个表之间的 BigQuery 差异
问题描述
我正在尝试查找并返回不匹配的行,同时在 2 个表之间进行搜索
两个表都有相同的 3 列。两个表的 ID 数量完全相同。表格是“a”和“b”
科尔斯;(ID,国家,通过失败)
我正在尝试返回表之间 passfail 不匹配的所有行(其中 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
这些查询似乎都不适合我。
任何帮助或建议表示赞赏!
解决方案
您必须加入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
推荐阅读
- autohotkey - 如何在自动热键中组合热键中的键?
- c++ - 使用具有各种弧类型的 LEMON 进行图形搜索
- postgresql - 如何在更新/更新插入中使用返回子句
- windows - 如何使用 Windows pktmon 捕获所有数据包大小
- python - fromtimestamp 返回我无效的参数
- python - 如何将我的字典值转换为数据框中的列?
- python - Google Cloud - Python SDK - 防火墙部署验证
- flutter - Flutter 中的 OpenCV
- r - 在R中执行逻辑回归时如何计算偏差残差
- jasper-reports - 使用 Jasper Studio 根据返回的值隐藏子报表