Mysql Выборка из двух таблиц по максимальному количеству общих значений.

Apuox

Новичок
Добрый день.
Очень нужен совет знающих людей. Есть 2 таблицы

INSERT INTO teacher (id, name) VALUES
(1, 'Учитель #1'), (2, 'Учитель #2'), (3, 'Учитель #3''), (4, 'Учитель #4'), (5, 'Учитель #5');

INSERT INTO teacher_student (teacher_id, student_id) VALUES
(1, 1), (1, 2),
(2, 3), (2, 4), (2, 5),
(3, 1), (3, 4), (3, 5),
(4, 1), (4, 2), (4, 4), (4, 5),
(5, 2), (5, 5);

Соответственно, мне надо получить 2х учителей, у которых максимальное кол-во одинаковых учеников (student_id во второй колонке)

Возможно ещё какие-то данные надо, я предоставлю, на скорую руку, т.к. решение надо срочно
 

WMix

герр M:)ller
Партнер клуба
Код:
select t1.teacher_id, t2.teacher_id, count(distinct t1.student_id),count(distinct t2.student_id)
from teacher_student t1, teacher_student t2
where t1.student_id = t2.student_id and t1.teacher_id != t2.teacher_id
group by t1.teacher_id, t2.teacher_id
order by count(distinct t1.student_id) desc
 

Apuox

Новичок
Большое спасибо, немного модернизовал для вывода учителей, по этим связям и всё, "костяк" идеальный )
 
Сверху