Size: a a a

2020 December 26

DE

Denis Efremov in MySQL
Ну а во втором запросе тебе вообще станции не нужны
источник

AK

Alex K. in MySQL
Мне нужны только те водители, которые закреплены за станциями из таблицы
источник

AK

Alex K. in MySQL
Да, этот момент не указан в задании, но он есть
источник

DE

Denis Efremov in MySQL
Alex K.
Да, этот момент не указан в задании, но он есть
Откуда он есть?
источник

AK

Alex K. in MySQL
interesting question
источник

AK

Alex K. in MySQL
Окей, возможно это я сам придумал
источник

AK

Alex K. in MySQL
Ладно, если опустим привязку водителей к станциям во втором случае, то получим
select d.id, COUNT(orders.id)
from drivers d
   left join orders on d.id = orders.driver_id
group by d.id;
источник

AK

Alex K. in MySQL
В первом селекте получаем 5 строк, во втором - больше пяти. Как их горизонтально соединить?
источник

DE

Denis Efremov in MySQL
Иннер второго к первому по айди станции
источник

AK

Alex K. in MySQL
А "первый" и "второй" в данном случае чем являются?
источник

DE

Denis Efremov in MySQL
Alex K.
В первом селекте получаем 5 строк, во втором - больше пяти. Как их горизонтально соединить?
А у тебя чем?
источник

AK

Alex K. in MySQL
Кстати, встала бд и в общем всё выглядит так:

select ts.id, COUNT(orders.id)
from taxi_stations ts
   left join drivers on ts.id = drivers.cooperative_taxi_station_id
   left join orders on orders.driver_id = drivers.id
group by ts.id;

select d.id, COUNT(orders.id)
from drivers d
   left join orders on orders.driver_id = d.id
group by d.id;
источник

AK

Alex K. in MySQL
источник

AK

Alex K. in MySQL
источник

DE

Denis Efremov in MySQL
Тем и являются
источник

AK

Alex K. in MySQL
Denis Efremov
Иннер второго к первому по айди станции
Я не совсем понимаю, как в результате этого выполняется задача. Мы же не селекты джоиним, так?
источник

AK

Alex K. in MySQL
Мы джоиним таблицы
источник

DE

Denis Efremov in MySQL
SELECT tid, tcount, did, dcount FROM (select ts.id AS tid, COUNT(orders.id) AS tcount
from taxi_stations ts
left join drivers
 on ts.id = drivers.cooperative_taxi_station_id
left join orders
 on orders.driver_id = drivers.id
group by ts.id) AS T1
INNER JOIN (
 select d.id AS did, COUNT(orders.id) AS dcount, d.cooperative_taxi_station_id AS ttid
 from drivers d
 left join orders
   on orders.driver_id = d.id
 group by d.id) AS T2
 ON T1.tid = T2.ttid
источник

DE

Denis Efremov in MySQL
Но тестовое ты не прошел
источник

AK

Alex K. in MySQL
Спасибо)
Получается так :\ но всё же "не прошёл сам", а прошёл с помощью, что в принципе котируется, если я во всём разобрался. В 2020 в конце концов живем)
источник