我在执行sql查询时遇到了一件奇怪的事情
SELECT *
FROM clients
WHERE id IN
(SELECT DISTINCT clientId
FROM quotes
WHERE storeEmail LIKE '%something@example.net%')
现在SELECT DISTINCT clientId FROM quotes WHERE storeEmail LIKE '%something@example.net%'
的结果只有很少的项目,比如10-20,但当我在查询之上运行时,整个phpmyadmin卡住了,数据库开始崩溃。有什么问题?
答案 0 :(得分:0)
尝试使用EXISTS
。根据{{3}},对于非常大的子查询,它比IN
更快
SELECT * FROM clients c
WHERE EXISTS (
SELECT * FROM quotes q
WHERE c.id = q.clientId
AND q.storeEmail = 'something@example.net'
)
您还需要quotes(clientId,storeEmail)