#mysql #select #subquery
Вопрос:
Итак, у меня есть 2 таблицы в моей базе данных. Одна таблица-это таблица сотрудников, а другая-таблица производительности сотрудников. В таблице производительности у меня есть столбец под названием «билет».
Что я пытаюсь сделать, так это отобрать сотрудников с наибольшим количеством билетов в отделе «Тех1».
Вот выбор, который я получил до сих пор:
SELECT e.Emp_name, p.Ticket FROM employee e LEFT JOIN performance p ON e.id=p.id WHERE p.Ticket = ( SELECT MAX(p.Ticket) FROM tbl_ambilmk WHERE p.departement="Tech1" )
Однако запрос не работает. Он покажет всех сотрудников и билеты от Tech1, не превышая их.
Комментарии:
1. сотрудники с наибольшим количеством билетов — я не понимаю, конечно, только 1 сотрудник может получить больше всего (или, возможно, больше 1 в случае розыгрышей) Пожалуйста, добавьте примеры данных и ожидаемый результат в виде текста.
2. Пожалуйста, укажите
SHOW CREATE TABLE
для каждого стола. Я надеюсь, что p.id я не удостоверение сотрудника.
Ответ №1:
Вы можете попробовать это. Но должно быть проще.
SELECT id,Emp_name FROM employee WHERE ID IN ( SELECT distinct ID FROM performance WHERE Ticket =( SELECT MAX(Ticket) FROM performance WHERE departement='Tech1'))