Как выполнить SQL запрос к нескольким идентичным таблицам и идентифицировать данные?

Всех рад приветствовать, столкнулся с проблемой нестандартного характера.
Суть в следующем:
Существует 2 таблицы с разными данным, но одинаковой структурой.

Пример:
60b05f2eb0dd5482410094.png

Какой результат необходимо получить, и какие условия?
Необходимо при помощи минимального количества запросов к базе получить всех условных "Григориев", учитывая то, что в полученной мне таблице я должен как-то различать из какой таблицы был получен данный человек: санитар или врач.
Ко всему этому требуется учесть, что выводить данные мы будем постранично. Т.е. данные будут выведены не все, а в виде пагинации, что добавляет к задаче необходимость получать предварительное количество записей, соответствующих нашему условие (Количество Григориев).

Менять структуру базы нельзя, в настоящий момент каждая таблица имеет по +- 3 млн строк, соответственно отсюда и необходимость использовать лимиты и добиться минимального количества обращений к базе.

Что я пытался сделать?

Сначала я пытался получать таблицу, объединяя результаты при помощи UNION, количество предварительных результатов считалось при помощи SQL_CALC_FOUND_ROWS, все получаю, но не могу идентифицировать данные уже после их получения. Ведь структуры таблиц одинаковые.
Далее пытался соединять таблицы при помощи JOIN, ничего особенного я не добился. Возможно хожу где-то рядом, но не могу попасть в точку.

Технологии
10.1.48-MariaDB
Запросы выполняются от node js скрипта, используя mysql2

Возможно я просто нубасик, буду благодарен любой помощи
  • Вопрос задан
  • 90 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
SELECT 1 AS `table_id`, `id`, `name`, ...
  FROM `table1`
  WHERE ...
UNION SELECT 2, `id`, `name`, ...
  FROM `table2`
  WHERE ...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы