Mysql 获取一个没有呼叫历史记录的随机客户端,并按其未接听的呼叫数量排序

Mysql 获取一个没有呼叫历史记录的随机客户端,并按其未接听的呼叫数量排序,mysql,database,Mysql,Database,我有一个简单的数据库和一个clients表。我还有一张电话桌。因此,当我呼叫客户机时,呼叫将被记录 通话有一个类型id,所有与通话主题相关,除了类型id 11,这意味着他们没有拿起电话 所以我想做的是让一个随机的客户打电话,这个客户没有接听电话的历史记录,但我想按他们没有接听电话的次数排序 我不想找一个我打过电话但还没有接电话的客户,因为有客户我甚至还没有打过电话。我两者都要,但先要后者 SELECT clients.* FROM clients LEFT JOIN calls ON cal

我有一个简单的数据库和一个clients表。我还有一张电话桌。因此,当我呼叫客户机时,呼叫将被记录

通话有一个类型id,所有与通话主题相关,除了类型id 11,这意味着他们没有拿起电话

所以我想做的是让一个随机的客户打电话,这个客户没有接听电话的历史记录,但我想按他们没有接听电话的次数排序

我不想找一个我打过电话但还没有接电话的客户,因为有客户我甚至还没有打过电话。我两者都要,但先要后者

SELECT clients.* 
FROM clients 
LEFT JOIN calls ON calls.client = clients.id and calls.type != 11
GROUP BY clients.id 
HAVING COUNT(calls.id) < 1 
ORDER BY RAND() ASC
LIMIT 1
这里是Im到目前为止的地方,它得到一个随机客户端,除了类型11之外没有调用,然后选择一个随机客户端


我只是不知道如何根据ASC订单中未接电话的数量对他们进行订购

首先获取电话计数,然后在客户端加入

下面将给你一个想法

Select * From 
Clients
Left Join
(
SELECT client, count(client) call_count
FROM calls
Where calls.type != 11
GROUP BY call.client
) calls
ON clients.id = calls.client  
ORDER BY RAND() ASC
LIMIT 1

不使用子查询是否可以执行此操作?请参阅