У меня есть две таблицы, одна из которых выглядит следующим образом:MySql запросов с INNER JOIN, GROUP BY и Макс
ID, Datetime, User_ID, Location and Status // the rest is not relevant
И другой выглядит так:
ID, Lastname // the rest is not relevant
Теперь я хочу только получите запись первой таблицы с наивысшим Datetime
за User_ID
и спросите другую таблицу lastname
из User_ID
. Просто ...
Я пробовал этот способ (Уик выглядит наиболее перспективным, но является ложным nontheless):
SELECT w.Datetime, w.User_ID, w.Status, e.Lastname
FROM worktimes AS w
INNER JOIN employees AS e
ON w.User_ID=e.ID
RIGHT JOIN (SELECT max(Datetime) AS Datetime, User_ID
FROM worktimes
WHERE Datetime>1467583200 AND Location='16'
GROUP BY User_ID
ORDER BY Datetime DESC
) AS v
ON v.User_ID=w.User_ID
GROUP BY w.User_ID
ORDER BY e.Nachname;
Может кто-нибудь дать мне подсказку, пожалуйста? Я действительно застрял на этом на некоторое время теперь, и теперь я начинаю получить некоторые узлы в моем мозгу ... :(
как создать небольшой sqlfiddle с некоторыми данными. Покажите таблицу, которую вы ожидаете. И кто-то это выскакивает. – Drew
Подсказка: переключиться с правого соединения, чтобы присоединиться! (У людей обычно достаточно проблем с левым соединением, а правильное соединение - это более запутанное ... Легче думать, что основная таблица слева объединяет необязательные данные, чем необязательные данные. Присоединяйтесь к главной таблице.) – jarlh
смотрите, эти другие ребята гораздо умнее, более грамотным. – Drew