У меня есть таблица, содержащая два внешних ключа. Мне нужно удалить все строки, где key1 & key2 те же, но val < $ x.MySQL: удаление записей на основе максимального значения
ключ1 & ключ2 не являются четкими значениями; может быть несколько записей с одной и той же клавишей 1 и/или ключ1/ключ2.
Я пробовал несколько подходов, но не могу заставить работать. Каждый подход до сих пор приводит к ошибке MySQL (например, «невозможно открыть таблицу») или неверному результату.
Выборочные данные из таблицы:
rownum key1 key2 val col col2 col3 col4
1 123 1 2 a b c d
2 123 1 2 e f g h
3 123 2 3 i j k l
4 123 2 3 m n o p
5 456 1 1 q r s t
Мне нужно удалить все строки, где «Вал» является < высшим «ВАЛ» для любой пары key1/key2.
Другими словами, для каждой отдельной комбинации key1/key2 мне нужно найти max "val" ($ x) и удалить любую строку, где val - < $ x.
Таким образом, желаемый результат после удаления утверждения:
rownum key1 key2 val col col2 col3 col4
3 123 2 3 i j k l
4 123 2 3 m n o p
5 456 1 1 q r s t
(. Цв-COL4 не имеют значения при определении, какие записи удалить, я включил их только отметить, что таблица содержит дополнительные столбцы)
key1, key2 и "val" - все типы int.
Как удалить строки, где key1 & key2 - это то же самое, но val < $ x?
Покажите нам запросы, которые вы пробовали. –
В случае 'key1 = 123' и' key2 = 2' combo наибольшее значение 'val' будет равно 3. Следовательно,' key2' меньше 3 в обоих случаях, так почему же комбо не удаляется? –
Извините, произошла ошибка в сообщении (теперь редактируется).Я хотел сказать: «Мне нужно удалить все строки, где« val »- это <самый высокий« val »для любой пары key1/key2.» – fournines