sql - 寻求关于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;
解决方案
您可以聚合并选择任意值:
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;
推荐阅读
- java - 在 Web 服务器线程中出现 OutOfMemoryError 时,Spring 引导请求挂起
- flutter - 在颤振提供程序中关闭应用程序时保存数据
- django - 根据用户角色获取登录用户的django权限以显示/隐藏菜单
- node.js - 如何在 Firebase Hosting 和 Google App Engine 之间启用 CORS
- c - 输入数字的正确方法是什么?
- wpf - WPF上没有前缀的特定值的单选按钮绑定
- flutter - 如何从 Locale (flutter_localizations) 更改默认值?
- c# - 基于字符串值实例化类或对一组类进行分组而不使用接口
- python - 为什么 numpy.vectorize() 会改变标量函数的除法输出?
- f# - FSharpList 断言与 N Fluent?