Получите случайного клиента без истории звонков и отсортируйте его по количеству звонков, на которые он не ответил - PullRequest
0 голосов
/ 28 мая 2020

У меня простая база данных с таблицей клиентов. Еще у меня есть таблица (телефонных) звонков. Поэтому, когда я звоню клиенту, звонок будет зарегистрирован.

У звонков есть идентификатор типа, все связанные с топом c звонка, за исключением типа 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

Вот где я до сих пор, он получает случайного клиента без вызовов (кроме типа 11), а затем выбирает случайный

Я просто не знаю, как их заказать по количеству звонков, которые они не приняли в AS C заказ

1 Ответ

0 голосов
/ 28 мая 2020

сначала подсчитайте количество звонков, а затем присоединитесь к клиенту

ниже даст вам представление

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...