Я использую MariaDB версии 10.2.21
Есть несколько строк с повторяющимся идентификатором user_id (один из столбцов).
Я хочу получить первое вхождение каждого user_id, а не только user_id но все строки, которые связаны с первым появлением user_id.
select
distinct user_id,
from
user_table
where
user_id in (a,b,c,d,e,f,....) and
date = '2020-02-25';
, это правильно дает мне все различное, теперь, когда я пытаюсь добавить связанные столбцы
EXPLAIN
select
distinct user_id,
ST_X(location) as lng
from
user_table
where
user_id in (a,b,c,d,e,f,....) and
date = '2020-02-25';
, это говорит мне, что я получит более 2 миллионов строк ... У меня только 3000 уникальных user_id. Я хочу получить только первый встречающийся user_id со связанным с ним местоположением.
Поскольку моя база данных очень большая, мне нужно использовать все преимущества индексов, иначе сломается.
мой индекс - [user_id, date], где user_id - 1-й индекс, а date - 2-й индекс.
Итак, мой вопрос заключается в том, как получить уникальную (первая встречающаяся = самая верхняя строка) информацию о пользователях с помощью индексов, поэтому моя БД не ломается?
, поэтому, если есть
user_id location
1 (123.22, 22.33)
1 (111.22, 22.12)
2 (155.33, 41.23)
2 (160.41, 12.31)
Я бы получил
user_id location
1 (123.22, 22.33)
2 (155.33, 41.23)