#mysql #select #join #distinct
#mysql #выберите #Присоединиться #отдельный
Вопрос:
Я пытаюсь работать над запросом, в котором схема моей базы данных выглядит следующим образом:
MEMBER TABLE
member_id----------member_name--------member_nickname
1 prashant prash
2 christopher chris
3 nick nick
4 harvey harvey
----------------------------------------------------------
CHECKIN TABLE
checkin_id------------------member_id------------------reg_on
1 1 1287713712
2 1 1287723999
3 2 1287733712
4 1 1287735912
5 3 1287803712
6 2 1287833712
Теперь, когда я выбираю разных пользователей, я хочу объединить обе таблицы, чтобы увидеть следующий результат:
member_id----------------member_name---------------reg_on
1------------------------------prashant -----------------1287713712
2------------------------------christopher---------------1287733712
3------------------------------nick------------------------1287803712
Пожалуйста, помогите!!!
Ответ №1:
Редактировать Не знаю, о чем я думал, усложняя мой предыдущий ответ…
Это простой JOIN
с агрегированным:
SELECT
m.member_id,
m.member_name,
MIN(c.reg_on) AS reg_on
FROM
MEMBER m JOIN CHECKIN c ON m.member_id = c.member_id
GROUP BY m.member_id, m.member_name
Ответ №2:
Если вы select
и group by
контрольная таблица, которая предоставит вам нужные данные, затем join
обратитесь к таблице участников для заполнения остальной части запроса.
SELECT c.member_id, m.member_name, MIN(c.reg_on) AS reg_on
FROM checkin c
JOIN member m ON m.member_id = c.member_id
GROUP BY c.reg_on
ORDER BY c.member_id;
Дополнительный выбор не требуется.
Комментарии:
1. … и я был медленным. Мой ответ эквивалентен ответу Майкла.