У меня есть две таблицы, из которых я запрашиваю. В одной таблице есть поля, которые обозначают, является ли игрок, изображенный на фотографии, мертвым / живым, в Зале славы и т. Д. Поле, которое я только что добавил, называется "new_flag". Это означает, что фотография является новой для моего инвентаря
Без GROUP BY результаты будут выглядеть примерно так (обратите внимание, что у некоторых игроков есть более одного продукта / фотографии)
name firstname lastname hall_of_fame deceased new_flag
---- --------- -------- ------------ -------- --------
EARL AVERILL SR EARL AVERILL SR Y Y Y
BILL TERRY BILL TERRY Y Y N
BILL TERRY BILL TERRY Y Y Y
BILL TERRY BILL TERRY Y Y N
BOBBY DOERR BOBBY DOERR Y N N
BOBBY DOERR BOBBY DOERR Y N N
С GROUP BY мой запрос выглядит следующим образом, но он не всегда может найти новый флаг, поскольку у каждого игрока может быть более одной записи.
SELECT CONCAT(a.firstname,' ',a.lastname) AS name,
a.firstname,
a.lastname,
b.hall_of_fame,
b.deceased,
b.new_flag
FROM vm_product_name AS a,
vm_product_new_attribute AS b
WHERE b.hall_of_fame ='Y'
AND a.product_id = b.product_id
GROUP BY CONCAT(a.firstname,' ',a.lastname)
ORDER BY a.lastname,
a.firstname;
Проблема в том, что я хочу, чтобы каждый игрок появлялся на моей веб-странице только один раз, но ..... Я также хочу добавить значок «новый» рядом с именем игрока, если у него есть хотя бы одна новая фотография. Есть идеи, как мне это сделать?
Я знаю, что это не оптимальный способ сделать это, но он построен как расширение Joomla / Virtumart, и я не могу сейчас изменить структуру базы данных.