Выберите 1 pr S / N, где идентификатор клиента = x и самый новый

Я действительно не могу получить картину того, как я должен продолжить получать следующую информацию из MySQL.

Я нажимаю на клиента. И на новой странице я получаю основную информацию о клиенте, и план также состоит в том, чтобы получить обзор принтеров, прикрепленных к клиенту.
У меня есть база данных, куда принтеры сообщают свою информацию, один раз в день.

я хочу показать каждую машину только один раз (по S / N), с самой новой информацией, такой как счетчик, тонер и т. д.

S/N     Model                  Counter Current Cyan Current Magenta Current Yellow Current Black
NB64534 HP Color Laserjet 2600  65.473          45%             32%            87%           33%
NB54730 HP Color Laserjet 2530 876.645          20%             10%            33%           99%

Приведенный выше код является всего лишь вымышленным, но они так, как я хотел бы иметь возможность представить машины для каждого клиента.

Прошло много времени с тех пор, как я последний раз работал с php и mysql, поэтому я не совсем в курсе кода.

На данный момент у меня нет ничего похожего на то, что я хочу, только базовая строка Mysql. $stmt = $pdo->query('SELECT * FROM maskine WHERE K_ID = 1 ORDER BY date DESC');

0

Решение

Итак, исходя из нашего комментария, конечный результат (при условии, что serial_number — ваш столбец S / N, и вы хотите сделать заказ на creation_date)

SELECT * FROM maskine WHERE K_ID = 1 GROUP BY serial_number ORDER BY creation_date DESC

// Редактировать

Сортировка по дате создания

Игнорируйте мой предыдущий запрос, GROUP BY и ORDER BY в одном запросе не работают должным образом.
Это должно сделать это, внутренний запрос выбирает все запросы, где K_ID = 1 и порядок по дате создания. Внешний запрос сгруппирует результаты по S / N.

SELECT result.*
FROM (SELECT *
FROM maskine
WHERE K_ID = 1
ORDER BY creation_date DESC) result
GROUP BY result.serial_number;
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]