Существует таблица контрольных списков, чтобы указать, был ли элемент собран.
Очень простая структура с четырьмя полями Code, Object, User, Got.
Доступно до 8 пользователей.
Пример:-
Code Object User Caught
id01 Cheese JS 1
id01 Cheese DF 1
id01 Cheese AB 0
id02 Bread JS 0
id02 Bread DF 0
id02 Bread AB 0
id03 Milk JS 0
id03 Milk DF 1
id03 Milk AB 0
…и так далее.
Я знаю, что реляционная БД будет лучше.
Я использую код: —
SELECT Code, Caught, Max(Caught) FROM Checklist GROUP BY Code
Но это не возвращается правильно. Мне нужно, чтобы получить только одну запись для каждого элемента, который был проверен любым из пользователей.
Таким образом, желаемый код вернется:
Code Object Caught
id01 Cheese 1
id02 Bread 0
id03 Milk 1
Обнадеживающим конечным результатом было бы поместить в скрипт php и показать все элементы в списке, которые по крайней мере кто-то проверил.
Просто нужно изменить свой SELECT
а также GROUP BY
немного:
SELECT Code,Object, Max(Caught) AS Caught
FROM Table1
GROUP BY Code,Object
Демо-версия: SQL Fiddle
Так как вы принимаете MAX
из Caught
исключаешь Caught
от твоего SELECT
список, и вы хотите Object
в вашем GROUP BY
так как это неагрегированное поле в вашем SELECT
список.
Ты пытался:
SELECT DISTINCT Code, Caught, Max(Caught) FROM Checklist