sql - 如何在 IN 语句中获取 20 万封电子邮件的信息而不会收到错误消息
问题描述
我正在尝试获取出现在不同表格中的超过 15 万封电子邮件的信息。
我的查询看起来像:
;with emails as (
select distinct m.email, m.id
from databasename.list as m
where m.email in
(
list of 150k emails
)
然后我使用基本的选择语句来收集我需要的所有信息。
select m.email
,m.id
,poe.order_time
,poe.order_id
,poi.price
from emails as m
left join database.purchase_order_entry as poe
on m.id=poe.member_id
left join database.purchase_order_item as poi
on poe.order_id=poi.order_id
where 1=1
and poe.order_time > '2018-11-02'
我收到以下错误消息:
查询处理器用尽了内部资源,无法生成查询计划。这是一个罕见的事件,仅适用于极其复杂的查询或引用大量表或分区的查询。请简化查询。如果您认为您错误地收到了此消息,请联系客户支持服务以获取更多信息。
如果我不能截断我的列表,我该如何解决这个问题。
解决方案
这么多字符无法处理,仅此而已。您需要创建一个 csv 文件并使用BULK INSERT将其导入。您不需要使用永久表,您可以使用临时表。
推荐阅读
- javascript - 数组传播值直到匹配另一个数组长度的长度,以允许数组压缩在一起
- java - extras(通知文本)没有通过
- python - NoReverseMatch:未找到带有参数 '('',)' 的 'update_cart' 的反向。尝试了 1 种模式:['cart/(?P
[\\w-]+)/$'] - python - 熊猫等级归一化 -1 和 1 之间的回报
- python - 我的除法方法不会运行。其他一切都很好
- javascript - React 组件道具的更改是否会导致重新渲染?
- c# - 剃刀页面排名
- php - PHP、ajax、HTML 表单上传文件到谷歌云存储
- signals - 不能在 OCTAVE 中进行 amdemod
- google-apps-script - Google 脚本 - 将值复制到新工作表中,已存在的值除外