При соединении таблиц через join получается множество строк с повторяющимися именами

Тема в разделе "Базы данных", создана пользователем yeaahhh, 5 июн 2014.

Модераторы: latteo
  1. yeaahhh

    yeaahhh

    Регистр.:
    8 май 2008
    Сообщения:
    278
    Симпатии:
    11
    Есть две таблицы..

    Таблица 1) (users:(
    +---+-------+---
    | id | name | age
    +---+-------+---
    | 1 | Вася | 20
    +---+-------+-+
    | 2 | Петя | 23
    +---+-------+---
    | 3 | Маша | 35
    +---+-------+--
    | 4 | Таня | 31
    +---+-------+---
    | 5 | Ваня | 37
    +---+-------+--

    Таблица 2) (dates:(
    +---+-------+-------------+
    | id_us | name_us | date |
    +---+-------+-------------+
    | 1 | Вася | 29 мая |
    +---+-------+-------------+
    | 1 | Вася | 30 мая |
    +---+-------+-------------+
    | 1 | Вася | 1 июня |
    +---+-------+-------------+
    | 2 | Петя | 5 июля |
    +---+-------+-------------+
    | 2 | Петя | 7 июля |
    +---+-------+-------------+

    нужно, чтобы получилось следующее..

    +-------+--------------------
    | name | date | age
    +-------+-------------------
    | Вася | 1 июня| 20
    +-------+-+--------------------
    | Петя | 7 июня| 23
    +-------+----------------------
    | Маша | - | 35
    +-------+-----------------------
    | Таня | - | 31
    +-------+---------------------
    | Ваня | - | 37
    +-------+---------------

    ==================================

    при соединении таблиц через join получается множество строк с повторяющимися именами..
    Вася 29 мая
    Вася 30 мая
    Вася 1 июня
    Петя 5 июля
    Петя 7 июля
    Маша -
    Таня -
    Ваня -

    Помогите, пожалуйста..
     
    Последнее редактирование: 5 июн 2014
  2. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.547
    Симпатии:
    1.419
    После джойна сделай
    PHP:
    group by `name`
     
    yeaahhh и Шумадан нравится это.
  3. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.728
    Симпатии:
    2.105
    ну и Max(Date)
    + непонятно зачем джоин, если в таблице dates дублируются имена

    можно так
    Код:
    SELECT name_us, MAX(date) from Таблица2
    GROUP BY name_us
    ORDER BY name_us
    единственное почему - это чтоб получить пустые дати для несуществующих записей во второй таблице. в таком случае запрос будет другой и с джоином
     
    yeaahhh нравится это.