Похоже, что мы могли бы иметь некоторые повторяющиеся значения в нашей таблице предпочтений , поэтому я хочу удалить все повторяющиеся записи для каждого пользователя,. Я потратил довольно много времени, пытаясь придумать решение, и я просто продолжаю кругами. Я пробовал макс, сгруппировал его, подзапросы и т. Д. Очень легко удалить самые высокие, но не все, но самые высокие. И специально для каждого пользователяSQL - удалите все дубликаты, но самые высокие из каждой группы для каждого пользователя ID
Таким образом, в базе данных я мог бы:
id : name: value : userId
1 : sortOrder: Asc : 1
2 : sortOrder: Desc : 1
3 : sortOrder: Asc : 2
4 : something: value2 : 1
Таким образом, в этом случае, я хочу, чтобы удалить первую строку, так как это дубликат для пользователя 1 и имеет самый высокий идентификатор и сохранить все остальные столбцы.
Так что я знаю, что это по крайней мере подзапрос с группой, но я просто не могу понять это. До сих пор у меня есть:
SELECT
MAX(id),
name
FROM
preference
GROUP BY
name
, который дает мне список тех, кого я хочу сохранить, НО он все еще скучает для каждого пользователя. Поэтому я немного хочу иметь обратное, если бы у меня было это для каждого пользователя. Однако я не верю, что могу использовать <> в подзапросе.
В конечном итоге я хочу удалить все те, у которых более низкий идентификатор для одного и того же пользователя, которые являются дублирующими элементами.
GROUP BY userID также, если вы хотите этого на пользователя. – Scotch