Предполагая, что у меня есть таблица «Отдел» (200 строк) и «Сотрудники» (300 000 строк), каждая имеет свои собственные данные, а таблица векторов, объединяющая оба, – «dep_emp»,
CREATE TABLE IF NOT EXISTS `dep_emp` ( `id` int(11) NOT NULL DEFAULT '0', `dep_id` int(11) NOT NULL DEFAULT '0', `emp_id` int(11) NOT NULL DEFAULT '0' ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Мой вопрос заключается в том, как сделать запрос для получения двух сотрудников (любых двух сотрудников) для каждого отдела? Мое решение до сих пор таково:
(SELECT * FROM `dep_emp` WHERE dep_id=1 LIMIT 2) UNION ALL (SELECT * FROM `dep_emp` WHERE dep_id=2 LIMIT 2) UNION ALL (SELECT * FROM `dep_emp` WHERE dep_id=3 LIMIT 2) ........etc
конечно, это делается {n} раз для каждого департамента, поэтому, если я хочу отобразить двух сотрудников для всех отделов, тогда мне придется писать 199 UNION ALL, это очень уродливо. Любые другие решения PS. есть много деталей, которые я выбрал из проблемы, чтобы сделать вещи намного проще