Как получить последнюю группу данных по каждому идентификатору - PullRequest
0 голосов
/ 04 сентября 2018

Как я могу получить данные о последней дате от каждого user_id:

Пользователь

id |  name   |
1  |  name 1 |
2  |  name 2 |
3  |  name 3 |

Дата

id |  date       |  user_id  |
1  |  2018-08-13 |    1      |
2  |  2018-08-13 |    2      |
3  |  2018-08-15 |    1      |
4  |  2018-08-14 |    2      |

Как мне вывести вот так:

user_id |  date       |  name
    1   |  2018-08-15 |  name 1
    2   |  2018-08-14 |  name 2
    3   |  null       |  name 3

UPDATE

Я хочу, чтобы мои выходные данные выбирали объединение таблиц дат по пользовательской таблице -> и получали последнюю дату от каждого user_id Если у моего user_id нет значения даты, оно выведет 0 или null

Ответы [ 4 ]

0 голосов
/ 04 сентября 2018

Поскольку вы помечаете Laravel, я предлагаю вам использовать Query Builder, например:

DB::table('dates')
    ->join('users', 'dates.user_id', '=', 'users.id')
    ->select(db::raw('users.name, user_id, max(date)'))
    ->groupBy('user_id','name')
    ->get();

ВЫВОД:

Illuminate\Support\Collection {#2957
     all: [
       {#2944
         +"name": "name 1",
         +"user_id": 1,
         +"max": "2018-08-15",
       },
       {#2941
         +"name": "name 2",
         +"user_id": 2,
         +"max": "2018-08-14",
       },
     ],
   }
0 голосов
/ 04 сентября 2018

Чтобы получить максимальную дату для пользователя, вы можете использовать это -

SELECT
  u.id,
  u.name,
  MAX(d.date) date
FROM user u
  LEFT JOIN date d
    ON u.id = d.user_id
GROUP BY u.id

1   name 1  15-Aug-18
2   name 2  14-Aug-18
3   name 3  (null)
0 голосов
/ 04 сентября 2018

ВЫБРАТЬ u.id, МАКС. (D.date), u.name ОТ ДАТЫ d Присоединиться к пользователю u ВКЛ d.user_id = u.id GROUP BY d.user_id

0 голосов
/ 04 сентября 2018

Вы можете использовать MAX

SELECT u.UserID, MAX(d.date) date, u.name
FROM User u
left join Date d on u.id = d.id 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...