我有两个表:requests
(email
),results
(email
,data
,processed_at
)
我想从results
获得一个条目,该条目具有processed_at = null
和requests
中存在的电子邮件。我目前的方法是使用 join :
select `results`.* from `results`
inner join `requests` on `requests`.`email` = `results`.`email`
where `results`.`processed_at` is null limit 1
不幸的是,这非常慢。有更有效的方法吗?
答案 0 :(得分:0)
您还可以使用子查询,例如:
SELECT results.*
FROM results
WHERE results.processed_at IS NULL
AND results.mail IN (SELECT DISTINCT requests.mail FROM requests)
LIMIT 1
但是,我不确定它是否更快。
答案 1 :(得分:0)
您可以尝试查询吗
选择
INFO:myApp.db.dbClient:Client instance to DB created INFO:myApp.cloud.Client:MQTT client instance created DEBUG:myApp.cloud.Client:Sending CONNECT (u1, p1, wr0, wq0, wf0, c0, k60) client_id=b'f628a6d8-188a-403e-90ef-da72ec1474b6'DEBUG:umg.cloud.Client:Received CONNACK (1, 0) DEBUG:myApp.cloud.Client:RC: 0 INFO:myApp.cloud.Client:connected to cloud DEBUG:myApp.cloud.Client:Sending PINGREQ DEBUG:myApp.cloud.Client:Received PINGRESP
。*来自
res
资源,results
需求
其中requests
。req
= email
。res
和email
。res
为空
答案 2 :(得分:0)
从results
中选择results
。*
在requests
上左加入requests
。email
= results
。email
其中results
。processed_at
是空限制1
我非常确定这比内部联接要快得多。