首页 > 解决方案 > 寻求关于Left join的建议

问题描述

我有两张桌子 t1 和 t2。在 t1 中,有 1641787 条记录。在 t2 中,有 33176007 条记录。我想从 table2 中取出两列并保留 t1 的所有内容。当我使用 t1 到 t2 的左连接时,我得到的记录比 t1 多。我想在加入后获得与 t1 相似数量的记录。请给我一个建议。这是我的代码:

SELECT t1.*, t2.City
FROM t1 LEFT JOIN t2 ON t1.ID = t2.ID;

标签: sqlgoogle-bigquery

解决方案


您可以聚合并选择任意值:

select t1.*, t2.city
from t1 left join
     (select t2.id, any_value(t2.city) as city
      from t2
      group by t2.id
     ) t2
     on t1.id = t2.id;

推荐阅读