我试图在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
这些查询似乎都不适合我。
任何帮助或建议都将受到赞赏!
答案 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