У меня есть таблица со следующей схемой:Удалить дубликаты из двух столбцов
+---------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| system_one_id | int(11) | NO | MUL | NULL | |
| system_two_id | int(11) | NO | MUL | NULL | |
| type | smallint(6) | NO | | NULL | |
+---------------+-------------+------+-----+---------+----------------+
Я хочу, чтобы удалить дубликаты, где «дубликат» определяется как либо:
- значений соответствия для обоих
system_one_id
иsystem_two_id
между двумя рядами или - "крест соответствует" ценности, т.е.
row1.system_one_id = row2.system_two_id
иrow1.system_two_id = row2.system_one_id
Есть ли способ удалить оба вида дубликатов в одном запросе?
Я использую MySQL, но я хотел бы быть в RDBMS-агностик, насколько это возможно. – theofabry
еще один важный вопрос: если у вас есть 3 дубликата записи, которую вы хотите удалить? – jfun