我遇到GBQ中的查询结果,我不明白也无法解释。在GBQ中奇怪的加入结果
我想连接两个具有完全相同的架构结构,可能有重复的表。
我的愿望是将表1中所有行和table2中所有不存在于table1中的附加行基于唯一标识符进行连接。这是一个非常常见的连接场景。
因此,为了测试我的连接,我缩小了我的where子句,使其指向单行。我验证了每个表中存在该行,并且列数据每个都是相同的。
这里是我用来测试,它返回单行一个示例查询,
选择T1。*从dataset1.homework T1 WHERE t1.book_id = 12345 AND t1.homework_id = 10337096 AND t1.homeworkresult_id = 12353139 AND t1.question_id = 2;
select t1。* from dataset2.homework t1 WHERE t1.book_id = 12345 AND t1.homework_id = 10337096 AND t1.homeworkresult_id = 12353139 AND t1.question_id = 2;
我验证每个返回单行像我所期望的。现在,如果我加入两个表(在我的情况下,table1将有最多的行)。
这是我的加入声明,返回30个ROWS,所有重复项。我不知道额外的行来自哪里,或者什么bigquery正在做什么。 EACH条款是必需的,因为我的表格大小超过了最小8Mb压缩限制。
SELECT T1。* FROM AS dataset1.homework T1 LEFT JOIN EACH dataset2.homework为T2 ON t1.homeworkresult_id = t2.homeworkresult_id WHERE t1.book_id = 12345 AND t1.homework_id = 10337096和T1。 homeworkresult_id = 12353139 AND t1.question_id = 2;
我真的很感激,如果有人能够揭示这里发生了什么。
感谢,J.D.
您是否有任何重复字段?请注意接口会自动平整数据。 – Pentium10
如果Pentium10的答案没有帮助,我很乐意进一步调查。您可以将作业ID发送到[email protected]。 –
感谢您的回复。没有重复的字段。 (query1),(query2),...,(queryN)中使用“UNION”,如GBQ语法SELECT * –