另一个表中存在的sql查询条目

时间:2018-09-11 13:45:43

标签: mysql sql

我有两个表:requestsemail),resultsemaildataprocessed_at

我想从results获得一个条目,该条目具有processed_at = nullrequests中存在的电子邮件。我目前的方法是使用 join

select `results`.* from `results` 
inner join `requests` on `requests`.`email` = `results`.`email` 
where `results`.`processed_at` is null limit 1

不幸的是,这非常慢。有更有效的方法吗?

3 个答案:

答案 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需求

其中requestsreq = emailres

emailres为空

答案 2 :(得分:0)

results中选择results。* 在requests上左加入requestsemail = resultsemail 其中resultsprocessed_at是空限制1

我非常确定这比内部联接要快得多。